一,二维数组
数组名为下一级的地址;
数组名是地址,同时也是一个组,内存块;
二维数组名解引用两次为第一个元素;
前加一个*等价于加后加一个【0】;
二,数据存储类别说明符
文件作用域,一种是指单纯的文件作用域;另一种是指外部链接文件作用域的简称;
具有块作用域,函数作用域,函数原型作用域的变量都是无链接;
具有文件作用域的变量可以是内部链接(也叫做文件作用域),也可以是外部链接(也叫做全局作用域或程序作用域)。
Static前缀 文件作用域,内部链接;无前缀 文件作用域,外部链接;
每个翻译单元均代表一个源代码文件和它所包含的头文件;
所有文件作用域变量均具有静态存储期,在程序执行过程中一直存在。
块作用域的对象具有自动存储期;
块作用域对象加上前缀static 也具有静态存储期,无链接。
声名在块或函数头上,为自动变量,无链接,自动存储期,块作用域;声名方法:块内即可,显式声名:auto前缀。
块嵌套:内层块的自动变量掩盖外层(俩变量名一样),到外层就用外层原来的数据;
寄存器变量:无法获得地址,无链接,自动存储期,块作用域;
静态的意思是该变量在内存中不动。
a ++ 先打印后加上1;
外部链接的静态变量(也叫外部存储类别,外部变量):静态存储期,文件作用域,外部链接;创建方法:在所有函数(包括main函数)外即可,只能初始化一次,并且在定义时就初始化,不然值为0;
内部链接的静态变量:在所有函数外即可;
extern并不改变其链接属性;
如果一个文件中使用的外部变量在另一个文件中定义,需首先用extern声名该变量。(使用时并非定义时,extern 语句并不分配内存)