目录
作用域的基本概念
1.函数声明的作用域
2.局部变量的作用域
3.全局作用域
4.static修饰后的作用域
作用域的基本概念
在c语言中,我们的标志符是具有一定的可见范围的,我们称这个可见范围为作用域
在软件开发中,我们要确定好标识符的作用域范围,如果标识符超过了它实际所需要的范围,那么可能会对程序造成环境污染,导致一些不必要的名字冲突和误会。
下面我们来说一下c程序有哪些作用域;
1.函数声明的作用域
函数声明的作用域仅在声明的时候,其声明式就是它的可见范围;
例如:void func(int a ,int *b);//函数的声明
注意:
1.变量a,b其可见范围只在函数的声明式中 b.
2.a,b可以省略不写,但是一般不这么做,因为要给参数注解
2.局部变量的作用域
作用域:仅在代码块{}中可见;
如果是在代码块{}内嵌套代码块{}那么我们可以理解为第一个代码{}就像是一个大房间,然后嵌套在内的第二代码块{},第三代码块{}等就像是大房间里面的小房间,它是不互相影响,但是大房间的数据可以用在小房间里面。
#include <stdio.h>
#include <string.h>
int main()
{int a = 10;int b = 20;int c = 21;{int a = 110;int b = 121;printf("%d\n",a);printf("%d\n",c);}printf("%d\n",a);return 0;
} //打印输入 110 21 10
3.全局作用域
作用域:
1.在本文件中全部可见
2.在任何文件中全部可见 但是要加外部声明extern
注意:
4.static修饰后的作用域
作用域:被static修饰后的全局变量,函数会被限制在仅本文件可见。
注意:被static修饰的局部变量,让其原先存储在栈内存变到数据段。