c语言———预处理,结构体
来源:互联网 发布:iqunix 知乎 编辑:程序博客网 时间:2024/06/09 19:52
1.什么是结构体
结构体是一种专门设计用来存储不同数据类型元素集合
结构体与数组的对比:
数组:只能由多个相同类型的数据构成。
结构体:可以由多个不同类型的数据构成。
2.结构体的定义
结构体内部的元素,也就是组成成分,我们一般称为”成员”。
结构体的一般定义形式为:
- 1
- 2
- 3
- 4
- 5
- 6
struct是关键字,是结构体类型的标志。
3.结构体初始化与使用
初始化:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
4.结构体注意点
结构体类型的作用域
1> 定义在函数外面:全局有效(从定义类型的那行开始,一直到文件结尾)
2> 定义在函数(代码块)内部:局部有效(从定义类型的那行开始,一直到代码块结束)
不允许对结构体进行自身递归定义。
结构体内可以包含别的结构体。
只有在定义结构体变量时才会进行内存空间分配。
5.结构体数组
跟结构体变量一样,结构体数组也有3种定义方式
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
上面3种方式,都是定义了一个变量名为stu的结构体数组,数组元素个数是5。
初始化:
- 1
- 2
- 3
- 4
也可以用数组下标访问每一个结构体元素。
6.结构体与函数
如果结构体作为函数参数,只是将实参结构体所有成员的值对应地赋值给了形参结构体的所有成员
修改函数内部结构体的成员不会影响外面的实参结构体
7.枚举
用来为某变量定义固定值。
格式:
一般形式为:enum 枚举名 {枚举元素1,枚举元素2,……};
enum Season {spring, summer, autumn, winter};
// 定义枚举变量
enum Season s;
//基本操作
s = spring; // 等价于 s = 0;
s = 3; // 等价于 s = winter;
9.枚举的使用注意:
(1) C语言编译器会将枚举元素(spring、summer等)作为整型常量处理,称为枚举常量。
(2) 枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序enum Season {spring, summer, autumn, winter};
说spring的值为0,summer的值为1,autumn的值为2,winter的值为3
(3)也可以在定义枚举类型时改变枚举元素的值
- 1
没有指定值的枚举元素,其值为前一元素加1。也就说spring的值为0,summer的值为3,autumn的值为4,winter的值为5
10.预处理
代码编译前对特殊的指令做解释。
以#开头,结尾不用分号。
1.宏定义
代码编译前对特殊的指令做解释。
以#开头,结尾不用分号。
不带参数的宏定义
define 宏名 字符串
比如#define ABC 10
带参数的宏定义
- 1
与函数的对比:
(1) 宏定义不涉及存储空间的分配、参数类型匹配、参数传递、返回值问题。
(2) 函数调用在程序运行时执行,而宏替换只在编译预处理阶段进行。所以带参数的宏比函数具有更高的执行效率。
- c语言———预处理,结构体
- C语言-预处理、结构体
- 黑马程序员——C语言---结构体、枚举、预处理指令
- C语言热身——预处理指令、变量类型、static和extern、结构体、枚举
- C语言08字符串 & 预处理 & 结构体
- C语言字符串 & 预处理 & 结构体八
- linux c学习—— 预处理和结构体
- 黑马程序员——C语言热身——预处理指令、变量类型、static和extern、结构体、枚举
- 程序员——C语言之结构体、枚举、预处理和static,extern关键字 易错知识点
- C语言预处理——宏定义
- C语言笔记——预处理
- C语言——数组、函数、预处理
- C语言基础——预处理指令
- C语言基础——预处理
- C语言系列——预处理命令
- 【C语言】预处理指令—宏定义
- 【C语言】预处理指令—条件编译
- 【C语言】预处理指令—文件包含
- 剑指offer---数字在排序数组中出现的次数
- Linux学习笔记2——VM虚拟机网络环境设置
- 关于微机原理的一些个人见解(2)
- 面试汇总
- python json 爬京东商品评论
- c语言———预处理,结构体
- Eclipse中怎样设置字体大小和修改注释字体的颜色
- 记录一个坑——SpannableStringBuilder
- [bzoj1854][二分图匹配]游戏
- 利用DecisionTree对titanic数据进行分类
- linux中合并多个文本文件以及对数据的处理
- LaTex(PART XIX)插入代码并且高亮显示
- 打印九九乘法表
- FPGA时序优化的几种方法