【C 语言】结构体 ( 结构体类型变量初始化 | 定义变量时进行初始化 | 定义隐式结构体时声明变量并初始化 | 定义普通结构体时声明变量并初始化 )
生活随笔
收集整理的這篇文章主要介紹了
【C 语言】结构体 ( 结构体类型变量初始化 | 定义变量时进行初始化 | 定义隐式结构体时声明变量并初始化 | 定义普通结构体时声明变量并初始化 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、結構體類型變量初始化
- 1、定義變量時進行初始化
- 2、定義普通結構體時聲明變量并初始化
- 3、定義隱式結構體時聲明變量并初始化
- 二、完整代碼示例
一、結構體類型變量初始化
1、定義變量時進行初始化
結構體類型如下 :
typedef struct Teacher {char name[20];int age;int id; }Teacher;定義結構體變量時 , 進行初始化操作 :
// 1.1 定義變量的同時進行初始化Teacher t2 = {"Tom", 18, 1};2、定義普通結構體時聲明變量并初始化
定義結構體類型的同時 , 定義結構體變量 , 同時進行初始化 ;
// 1.2 定義結構體類型的同時 , 定義結構體變量 , 同時進行初始化 struct Student3 {char name[20];int age;int id; } s6 = {"Tom", 18, 1};3、定義隱式結構體時聲明變量并初始化
定義隱式結構體類型的同時 , 定義結構體變量 , 同時進行初始化 ;
// 1.3 定義隱式結構體類型的同時 , 定義結構體變量 , 同時進行初始化 struct {char name[20];int age;int id; } s7 = {"Tom", 18, 1};二、完整代碼示例
完整代碼示例 :
#include <stdio.h> #include <stdlib.h> #include <string.h>/*** @brief The Student struct* 定義 結構體 數據類型 , 這是定義了 固定大小內存塊別名* 此時還沒有給 結構體 分配內存* 聲明了 結構體類型 變量后 , 才會在 棧內存中為其分配內存* 使用 malloc 可以在堆內存中為其分配內存*/ struct Student {char name[20];int age;int id; };/*** @brief The Teacher struct* 定義 結構體 數據類型 , 同時為該結構體類型聲明 別名* 可以直接使用 別名 結構體變量名 聲明結構體類型變量* 不需要在前面添加 struct 關鍵字*/ typedef struct Teacher {char name[20];int age;int id; }Teacher;// II. 定義隱式結構體類型的同時定義變量// 定義隱式結構體類型 , 沒有結構體名稱 // 在結構體結尾直接聲明變量名 struct {char name[20];int age;int id; }s2, s3;// III. 定義結構體類型的同時定義變量// 定義結構體類型的同時 , 定義結構體變量 // 普通的結構體類型后 , 聲明結構體類型變量 struct Student2 {char name[20];int age;int id; }s4, s5;// 1.2 定義結構體類型的同時 , 定義結構體變量 , 同時進行初始化 struct Student3 {char name[20];int age;int id; } s6 = {"Tom", 18, 1};// 1.3 定義隱式結構體類型的同時 , 定義結構體變量 , 同時進行初始化 struct {char name[20];int age;int id; } s7 = {"Tom", 18, 1};/*** @brief main* @return*/ int main() {// I. 用 類型 定義結構體變量// 在棧內存中 定義 Student 結構體 類型變量struct Student s1;// 使用類型別名 定義 Teacher 結構體類型變量Teacher t1;// 變量初始化// 1.1 定義變量的同時進行初始化Teacher t2 = {"Tom", 18, 1};// 命令行不要退出system("pause");return 0; }總結
以上是生活随笔為你收集整理的【C 语言】结构体 ( 结构体类型变量初始化 | 定义变量时进行初始化 | 定义隐式结构体时声明变量并初始化 | 定义普通结构体时声明变量并初始化 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C 语言】数组 ( 指针数组用法 |
- 下一篇: 【C 语言】结构体 ( 结构体变量内存操