大学一年级开始学C 语言,但许多知识还不是很清楚,有些则停留在概念阶段,实际操作时常常搞的乱七八糟。为了更深入理解C语言,把一些概念和知识记录下来,以方便查阅。
- C 语言中最常出现的就是变量和函数,而且有不同的类型,变量有auto,static,register,extern,函数有static和extern。
对于变量:
auto:一般我们在函数内部申明的没有特殊关键词的变量都是auto,这种变量在使用完后会自动释放存储空间
static:用static申明的变量会在静态存储区分配空间,而且会一直保存到程序结束,
如果变量是函数内部的,则该变量在函数退出后不会释放,下次调用仍然是上次的值,但该变量只能由该函数使用;
如果变量是函数外部的变量(全局变量),则该变量只能在申明这个变量的文件中使用,而对于程序的其他源文件不能使用该变量
register:此种变量只能是局部变量,将变量的值直接放到了寄存器中,速度快,但是不能分配太多,cpu的寄存器个数有限
extern:全局变量,申明在函数外部,且这个程序的所以文件都可以使用
对于函数:
static:与变量类似,将函数申明为static则该函数只能在定义函数的文件中使用,其他文件不能使用
extern:全局函数,程序的所有文件都可以调用
编程时要根据实际使用情况定义变量的类型,提高程序变量的使用效率和安全性。
-
堆和栈