2015 10 30 结构体
2015-11-05 20:20
281 查看
1、定义一个结构体需要注意的东西
1.struct + 结构体名struct 关键字一定不能省
2.成员变量要写在{}中
3.每个成员变量之间用分号“;”隔开
4.大括号{}后面一定要加分号;
2、 结构体:是开发者自己定义的一种数据类型
struct 结构体类型名{
成员变量类型1 成员变量1;
成员变量类型2 成员变量2;
。。。
成员变量类型n 成员变量n;
{
//结构数据类型的使用,就是拿结构体数据类型定义变量,结构体变量
3、如何定义一个结构体
结构体数据类型 结构体变量名 = {成员变量值1,成员变量值2,...成员变量值n};
*******匿名结构体 只能在定义的同何地方都无法使用,因为没有名字
4、 //结构体在分配内存空间的时候遵循内存对齐原则,以最大的基本数据类型在内存中所占的字节数为标准;
//我们以后在放置结构体成员变量的时候一定要合理放置,减少内存碎片的出现,到达节约内存的目的
结构体数组:有同一种类型的结构体变量构成的数组
5、 起别名的格式
(1)先定义结构体,再对结构体起别名
(2)定义结构体的同时起别名,这时就不能再定义结构体变量了;
6、注意问题:
//typedef struct avPerson{
// char name[50];//名字
// 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 ++) {
// 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);
// }
1.struct + 结构体名struct 关键字一定不能省
2.成员变量要写在{}中
3.每个成员变量之间用分号“;”隔开
4.大括号{}后面一定要加分号;
2、 结构体:是开发者自己定义的一种数据类型
struct 结构体类型名{
成员变量类型1 成员变量1;
成员变量类型2 成员变量2;
。。。
成员变量类型n 成员变量n;
{
//结构数据类型的使用,就是拿结构体数据类型定义变量,结构体变量
3、如何定义一个结构体
结构体数据类型 结构体变量名 = {成员变量值1,成员变量值2,...成员变量值n};
*******匿名结构体 只能在定义的同何地方都无法使用,因为没有名字
4、 //结构体在分配内存空间的时候遵循内存对齐原则,以最大的基本数据类型在内存中所占的字节数为标准;
//我们以后在放置结构体成员变量的时候一定要合理放置,减少内存碎片的出现,到达节约内存的目的
结构体数组:有同一种类型的结构体变量构成的数组
5、 起别名的格式
(1)先定义结构体,再对结构体起别名
(2)定义结构体的同时起别名,这时就不能再定义结构体变量了;
6、注意问题:
//typedef struct avPerson{
// char name[50];//名字
// 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 ++) {
// 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);
// }
相关文章推荐
- Course
- 在eclipse下建立的web项目像eclipse的目录结构一样
- js异常处理
- oracle习题1~13
- 临界区(Critical section)与互斥体(Mutex)的区别
- [C++11]二叉树前序、中序和后序遍历2(非递归)
- 计算整数的二进制表示中1的个数
- 泛型
- 进击的KFC:OC(七)类的扩展
- 初写CSDN博客
- windows 非窗口定时器
- C++ print tuple
- 【树项目3 - 利用二叉树遍历思想解决问题——第10周】
- 2015 10 28  函数
- 修改cmd字体为Consolas
- UML之初识
- mysql select中子查询中使用强制索引的优化案例
- C++delete和delete[]的区别
- 遍历嵌套集合
- Computer Vision: Algorithms and Applications(学习笔记二)--geometric transformations