标签:
1、结构体的概述
在C语言中,结构体(struct)指的是一种数据结构,是C语言中构造类型的其中之一。
2、结构体的定义
struct 结构体名 {
成员变量1;
成员变量2;
...
};
1 struct student { 2 3 // 结构体的成员变量 4 char name[20]; // 姓名 5 char gender; // 性别 6 int age; // 年龄 7 double score; // 成绩 8 9 };// 分号不能省略
3、结构体变量的定义
1 struct teacher { 2 char name[20]; 3 int age; 4 float height; 5 }; // 分号不能省略 6 struct teacher englishTeacher;
1 struct teacher { 2 char name[20]; 3 int age; 4 float height; 5 } mathTeacher;
其中mathTeacher为变量名。
1 struct { 2 char name[20]; 3 int age; 4 float height; 5 } chineseTeacher;
其中chineseTeacher为变量名, 此结构体我们称为匿名结构体。
4、结构体的重定义
2) 在创建结构体时, 进行重定义:
1 typedef struct teacher { 2 char name[20]; 3 int age; 4 float height; 5 } Teacher;
5、结构体变量的成员
1) 结构体变量成员的初始化:使用{...}给构造类型赋初始值
1 Teacher englishTeacher = {“zf”, 23, 1.70f};
注意:赋值的数值类型和成员变量的类型一一对应
1 englishTeacher.name = tt 2 englishTeacher.age = 30 3 englishTeacher.height = 1.77f
2> 结构体与结构体可以直接赋值
注意:数组是不可以直接赋值的
6、结构体所占内存的计算
1) 最大分配(长度最大的进行分配内存)
2) 内存对齐(对应类型所占字节的倍数进行存放)
1 struct student { 2 char name[20]; //内存0-20 3 char gender; //内存21 4 int age; //内存24-27 5 double score; //内存32-39 6 };
图解:
7、结构体嵌套
1 struct birthday { 2 int year; 3 int month; 4 int day; 5 }; 6 typedef struct birthday Birthday; 7 8 struct person { 9 char name[20]; 10 char gender; 11 Birthday bir; 12 }; 13 typedef struct person Person;
1 struct person { 2 char name[20]; 3 struct person per; 4 };
8、结构体数组
数组的类型是结构体类型,与其他数据类型的数组是一样的,可以参考iOSDay04C语言数组
标签:
原文地址:http://www.cnblogs.com/gfxxbk/p/5259504.html