一、关键字 typedef
自我理解:typedef 可以将长命名的变量名转化为短的变量名,更加方便使用。
二、关键字 static
1.static 修饰局部变量
未经过static修饰的局部变量
经过static修饰的局部变量
总结:
当用static修饰局部变量时,局部变量的存储位置就在静态区,而不是在栈区。
2.用static修饰全局变量
全局变量具有外部链接属性
static修饰全局变量的时候,这个全局变量的外部链接属性就变成了内部链接属性。其他源文件(.c)就不能够再使用到这个全局变量了。
3.用static修饰函数
函数也是具有外部链接属性的
一个函数本来是具有外部链接属性的,但是被static修饰的时候,外部链接属性就改变为内部链接属性,其他源文件(.c)就无法使用。
4.(补充)寄存器
三、#define 定义常量和宏
宏是将数据传进去
四、指针
1.内存
内存的解释:
为什么一个内存单元的大小用 1 byte 来表示,而不是用 1 bit 来表示?
原因:如果我们存储一个 char 类型的变量,向内存申请1个字节的空间,那么用一个 bit 单元来表示一个地址,那么 char 类型的变量就占了8个地址,空间利用率不高。
2.指针
取地址a的地址为第一个字节空间的地址。如下。
创建指针变量来存储地址
“*” 解引用操作符
五、指针变量的大小
六、结构体
因为c语言所给的类型都只是数字类型,所以结构体可以根据所需类型来自定义。
创建结构体就像是在画图纸,并没有创建结构体变量,当创建结构体变量时,才会向内存申请一块空间。
“.”操作符
“->”操作符