[局部变量]C语言二级必备知识,全局变量和局部变量,一看就会的C语言知识( 二 )


其实 , 当我们在定义函数和变量的时候 , 应该声明数据类型和存储类别 。数据类型就是整形 , 浮点型等 , 那存储类别又有什么呢?
C语言的存储类别有四种:
自动变量 (auto 变量)
静态局部变量 (static 变量)
寄存器变量 (re'gister 变量)
外部变量 (extern 变量)
auto 变量:
我们在定义 int a ;的时候 , 实际上就是: auto int a ;
static 变量:
例如一下程序: #include
int add (int a) {int c= 3;c= c+1;returna+c }int main () {}
[局部变量]C语言二级必备知识,全局变量和局部变量,一看就会的C语言知识
文章图片

文章图片

我们可以看到当我们每次调用add函数的时候 , c的值又会初始化到3 , c=c+1的赋值语句 , 只在本次调用起作用 , 所以我们在这也能看出来c是动态分配的 。但是我们在对比一下程序:#include
int add (int a) {staticint c= 3;c= c+1;returna+c; }int main () {int a=1;printf ("%d",add(a)); }
[局部变量]C语言二级必备知识,全局变量和局部变量,一看就会的C语言知识
文章图片

文章图片

这里就能看出static变量的区别了 。
register 变量
【[局部变量]C语言二级必备知识,全局变量和局部变量,一看就会的C语言知识】又叫寄存器变量 , 计算机在进行计算的时候 , 通常要从外部取数据 , 那为了提高执行效率 , 我们可以将变量存放在寄存器也就是在CPU的寄存器中 。当程序执行的数据特别多的时候 , 我们能够看出明显的区别 。


推荐阅读