黑马程序员------C语言-----结构体和枚举
来源:互联网 发布:淘宝瓜子是什么类目 编辑:程序博客网 时间:2024/05/16 06:06
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
结构体内存分析
结构体所占用的存储空间 必须是 最大成员字数的倍数 ----->补齐算法(对齐算法)
定义结构体变量的3种方式
1>先定义类型,再定义变量(分开定义)
2>定义类型的同时定义变量
3>定义类型的同时定义变量(省略了类型名称)
2.利用指针访问结构体的成员
1> (*p).成员名称
2> p->成员名称
二.枚举
一:结构体
结构体:由一系列具有相同类型或不同类型的数据构成的数据集合
数组:只能由多个相同类型的数据构成
结构体:可以由多个不同类型的数据构成
1>.定义结构体类型
struct Person { // 里面的3个变量,可以称为是结构体的成员或者属性 int age; // 年龄 double height; // 身高 char *name; // 姓名 };
2>.根据结构体类型,定义结构体变量
struct Person p = {32, 1.75, "Colin"}; p.age = 30; p.name = "rose"; printf("age=%d, name=%s, height=%f\n", p.age, p.name, p.height);//错误写法// struct Person p2;// p2 = {30, 1.67, "jack"};
结构体内存分析
结构体所占用的存储空间 必须是 最大成员字数的倍数 ----->补齐算法(对齐算法)
定义结构体变量的3种方式
1>先定义类型,再定义变量(分开定义)
struct Student { int age; }; struct Student stu;
2>定义类型的同时定义变量
struct Student { int age; } stu; struct Student stu2;
3>定义类型的同时定义变量(省略了类型名称)
struct { int age; } stu;
结构体数组 :
能存放3个结构体变量,每个结构体变量占16个字节
struct RankRecord records[3] = { {1, "jack", 5000}, {2, "jim", 500}, {3, "jake", 300} };//错误写法 records[0] = {4, "rose", 9000};
结构体与指针
1.指向结构体的指针的定义
struct Student *p;
2.利用指针访问结构体的成员
1> (*p).成员名称
2> p->成员名称
int main(){ struct Student { int no; int age; }; // 结构体变量 struct Student stu = {1, 20}; // 指针变量p将来指向struct Student类型的数据 struct Student *p; // 指针变量p指向了stu变量 p = &stu; p->age = 30; // 第一种方式 printf("age=%d, no=%d\n", stu.age, stu.no); // 第二种方式 printf("age=%d, no=%d\n", (*p).age, (*p).no); // 第三张方式 printf("age=%d, no=%d\n", p->age, p->no); return 0;}
结构体的嵌套
int main(){ struct Date { int year; int month; int day; }; // 类型 struct Student { int no; // 学号 struct Date birthday; // 生日 struct Date ruxueDate; // 入学日期 // 这种写法是错误的 // struct Student stu; }; struct Student stu = {1, {2000, 9, 10}, {2012, 9, 10}}; printf("year=%d,month=%d,day=%d\n", stu.birthday.year, stu.birthday.month, stu.birthday.day); return 0;}
二.枚举
定义:将变量的值一一列出来,变量的值只限于列举出来的值的范围内
int main(){ enum Sex{ Man, Woman, Unknow}; // 0男 1女 -1不详 // int sex = -1; enum Sex s = Unknow; // 1.定义枚举类型 enum Season { spring, summer, autumn, winter }; // 2.定义枚举类型 enum Season s1 = winter; printf("%d\n", s1); return 0;}
0 0
- 黑马程序员------C语言-----结构体和枚举
- 黑马程序员—C语言_结构体、枚举
- 黑马程序员 C语言------结构体 枚举学习
- 黑马程序员 C语言 - 08 变量、结构体、枚举
- 黑马程序员 C语言-枚举,结构体,指针
- 黑马程序员-c语言结构体,联合以及枚举
- 黑马程序员——C语言------结构体、枚举
- 黑马程序员IOS-C语言-结构体、枚举
- 黑马程序员-----------C语言基础-----------结构体·枚举
- 黑马程序员——C语言基础---结构体、枚举
- 黑马程序员——C语言学习之结构体和枚举
- 黑马程序员——c语言复杂数据类型:结构体和枚举,typedef的使用
- 黑马程序员——C语言知识点总结之结构体和枚举
- 黑马程序员—C语言—数组、字符串、结构体和枚举
- 黑马程序员--C语言——结构体和枚举类型
- 黑马程序员---C语言基础---结构体、枚举、typedef、宏、static和extern
- 黑马程序员--03C结构体和枚举
- 黑马程序员--枚举类型和结构体
- 指针在数组中的数据传递作用
- 欧拉计划---0003 Largest prime factor(找出一个合数的最大质数因子)
- string与wstring转换
- poj2139
- c++中冒号(:)和双冒号(::)的用法
- 黑马程序员------C语言-----结构体和枚举
- **Codeforces Round #250 (Div. 2) C. The Child and Toy ACM解题报告(贪心难题)
- 我是如何找实习 (or 工作)的
- UISegmentedControl的总结还不错!
- 极光推送使用实例(二) Android客户端
- 图的拓扑排序
- Spring+Hibernate+Struts2整合文档
- 获取照片库中所有照片
- 【日常学习】【语法】STL之set