【C语言天天练(十)】结构体
来源:互联网 发布:淘宝网小博士隔音膜 编辑:程序博客网 时间:2024/06/05 19:17
引言:数据经常以成组的形式存在。在C中,使用结构可以把不同类型的值存放在一起。
结构的声明有两种
1、struct SIMPLE{
int a;
char b;
float c;
};然后用标签SIMPLE去声明结构体变量。
2、typedef struct{
int a;
char b;
float c;
}Simple;然后用Simple去声明结构体变量。此时Simple是个类型名,而不像上面的SIMPLE是个标签。
结构成员可以是标量、数组、指针甚至是其他结构。
结构成员的直接访问用点操作符(.)访问。例如Simple a;a.a或a.b或a.c。
结构成员的间接访问用->操作符访问,它是针对结构指针使用的。例如Simple *a;a->a或a->b或a->c。
结构的自引用是结构的成员里包含结构本身,但这种包含不能是直接包含,而应该包含的是指向该结构的指针。
结构作为函数参数时,一般使用指向结构的指针。向函数传递指针的缺陷在于函数现在可以对调用程序的结构变量进行修改。如果不希望如此,可以在函数使用const关键字来防止这类修改。而且,传递结构指针比传递结构本身更有效率。
总结:
1、具有相同成员列表的结构声明产生不同类型的变量。
2、使用typedef为一个子引用的结构定义名字时应该小心。
3、向函数传递结构参数是低效的。
4、把结构标签声明和结构的typedef声明放在头文件中,当源文件需要这些声明时可以通过#include指令包含。
5、结构成员的最佳排列形式并不一定就是考虑边界对齐而浪费内存空间最少的那种排列形式。
0 0
- 【C语言天天练(十)】结构体
- 【C语言天天练(二十)】scanf函数详解
- 【C语言天天练(二)】预处理
- 【C语言天天练(三)】函数
- 【C语言天天练(六)】指针
- 【C语言天天练(八)】字符串
- 【C语言天天练(零)】变量的存储类型
- 【C语言天天练(一)】变量的类型限定词
- 【C语言天天练(三)】typedef详解
- 【C语言天天练(四)】回调函数
- 【C语言天天练(五)】strlen和sizeof
- 【C语言天天练(零)】a.out简介
- 【C语言天天练(二)】static关键字
- 【C语言天天练(四)】可变参数函数
- 【C语言天天练(五)】setjmp和longjmp
- 【C语言天天练(七)】回调函数
- 【C语言天天练(九)】动态内存分配
- 【C语言天天练(十一)】深入理解指针
- 设计模式 - 命令模式(command pattern) 宏命令(macro command) 详解
- 利用phpmyadmin修改mysql的root密码及如何进入修改密码后的phpmyadmin
- 关于new和delete的编译器的内部实现---来自深度探索C++对象模型
- UVa 445 Marvelous Mazes
- POJ 1068 Parencodings
- 【C语言天天练(十)】结构体
- jdk环境变量配置方法
- c++开源爬虫-Larbin简介
- Java学习总结12——网络2(Java Socket选项详解)
- qwehqwrhrh
- eclipse 启动 Failed to create the java virtual machine
- 2-05. 求集合数据的均方差(15)
- 心情记录2014年6月16日
- Linux slab 分配器剖析