1.用static修饰的变量叫做静态变量
静态变量保留上一次值
静态变量的生命周期和引用程序绑定
静态变量写在函数内或者函数外,它的生命周期并没有受到作用域的限制
静态变量如果写在函数的外面,其他的函数也可以使用这个变量,如果写在函数里面,只能在对应的函数中使用
存储区域:静态存储区
2.用register修饰的自动变量都是寄存器变量
只有自动变量才可以是寄存器变量,全局变量和静态变量不行
3.寄存器变量只限于int、char、浮点型和指针类型变量使用
4.用extern 修饰的函数是外部函数,extern 是默认的,可以省略
用static 修饰的函数是内部函数(静态函数)
5.全局变量可以多次声明,代表着同一个变量,但不能多次定义
6.全局变量与局部变量可以重名
7.多个源文件中同名的全局变量都代表着同一个变量
8.使用static修饰的全局变量不能被其他文件访问,是私有的全局变量
9.extern 声明一个已经定义过的变量,而不是定义一个变量
10.结构体允许内部的元素是不同类型的
11.不允许对结构体本身递归定义
12.定义结构体类型只是说明了该类型的组成情况,并没有给它分配存储空间
13.枚举:enum
枚举值默认是从0开始的,然后依次累加
14.给指针开辟空间:e.g:
jack.name = malloc(sizeof(char) * 10);