1、定义一个结构体需要注意的东西
1.struct + 结构体名struct 关键字一定不能省
2.成员变量要写在{}中
3.每个成员变量之间用分号“;”隔开
2.成员变量要写在{}中
3.每个成员变量之间用分号“;”隔开
4.大括号{}后面一定要加分号;
2、
结构体:是开发者自己定义的一种数据类型
struct 结构体类型名{
成员变量类型1 成员变量1;
成员变量类型2 成员变量2;
。。。
成员变量类型1 成员变量1;
成员变量类型2 成员变量2;
。。。
成员变量类型n 成员变量n;
{
//结构数据类型的使用,就是拿结构体数据类型定义变量,结构体变量
3、如何定义一个结构体
结构体数据类型 结构体变量名 = {成员变量值1,成员变量值2,...成员变量值n};
*******匿名结构体 只能在定义的同何地方都无法使用,因为没有名字
4、
//结构体在分配内存空间的时候遵循内存对齐原则,以最大的基本数据类型在内存中所占的字节数为标准;
//我们以后在放置结构体成员变量的时候一定要合理放置,减少内存碎片的出现,到达节约内存的目的
结构体数组:有同一种类型的结构体变量构成的数组
5、
起别名的格式
(1)先定义结构体,再对结构体起别名
(1)先定义结构体,再对结构体起别名
(2)定义结构体的同时起别名,这时就不能再定义结构体变量了;
6、注意问题:
//typedef struct avPerson{
// char name[50];//名字
// int age;//年龄
// char bust;//胸围
// char product[100];//代表作
//
// int age;//年龄
// char bust;//胸围
// char product[100];//代表作
//
//}AVperson;
// AVperson p1 = {"cangLaoShi",25,'D',"secondDream"};
// AVperson p2 = {"longZeLuoLa",22,'F',"daMingGong"};
// AVperson p3 = {"xiaoZe",35,'D',"jiaYouXianQi"};
// AVperson p4 = {"dongYueFeng",23,'G',"YueShiYouHHuo"};
// AVperson p5 = {"yinJun",18,'A',"seJie"};
// AVperson avArray[5] = {p1,p2,p3,p4,p5};
// printf("%d\n",avArray[3].age);
//
// //根据胸围做整体排序
// //遍历
// for (int i = 0; i < 5 - 1; i ++) {
// AVperson p3 = {"xiaoZe",35,'D',"jiaYouXianQi"};
// AVperson p4 = {"dongYueFeng",23,'G',"YueShiYouHHuo"};
// AVperson p5 = {"yinJun",18,'A',"seJie"};
// AVperson avArray[5] = {p1,p2,p3,p4,p5};
// printf("%d\n",avArray[3].age);
//
// //根据胸围做整体排序
// //遍历
// for (int i = 0; i < 5 - 1; i ++) {
// for (int j = 0; j < 5 - i - 1; j ++) {
// if (avArray[j].age > avArray[j + 1].age) {//比较字符串时用strcmp如姓名等等;
// AVperson temp = avArray[j];
// avArray[j] = avArray[j +1];
// avArray[j + 1]= temp;
// }
// }
// }for (int i = 0; i < 5; i ++) {
// printf("%s-%d-%c-%s\n",avArray[i].name,avArray[i].age,avArray[i].bust,avArray[i].product);
// }
// avArray[j] = avArray[j +1];
// avArray[j + 1]= temp;
// }
// }
// }for (int i = 0; i < 5; i ++) {
// printf("%s-%d-%c-%s\n",avArray[i].name,avArray[i].age,avArray[i].bust,avArray[i].product);
// }
转自:http://blog.csdn.net/qq_31810357