全局变量和局部变量
一. 局部变量&全局变量
1 局部变量:“在函数内定义的变量”,
即在一个函数内部定义的变量,只在本函数范围内有效。
2 全局变量:“在函数外定义的变量”,
即从定义变量的位置到本源文件结束都有效。
目的:增加函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值,
就能影响到其他函数中全局变量的值,相当于各个函数之间有直接的传递渠道。
为了便于区别两者,C程序设计人员有一个习惯,将全局变量名的第一个字母用大写表示。如:float Max=0,Min=0; //定义全局变量Max,Min
3.另外如果同时使用局部变量和全局变量,那么会发生
int num1 = 520,num2 = 520;
void fun();
void fun()
{
int num2;
num1 = 666;
num2 = 120;
printf("In function-fun:num1 = %d num2 = %d\n",num1,num2); // num1 = 666,num2 = 120
}
int main(int argc, char *argv[])
{
printf("befor-In main:num1 = %d num2 = %d\n",num1,num2); // num1 = 520,num2 = 520
fun();
printf("after-In main:num1 = %d,num2 = %d\n",num1,num2); // num1 = 666,num2 = 520
return 0;
}
则在局部变量的作用范围内,外部变量会被“屏蔽”,不会起作用
静态本地变量
静态本地变量的特点是,不像其他变量在被定义后,离开函数就消失了,静态会一直待在函数哪里,你下次调用时也不会重新定义
int main(){
fun();
fun();
fun();
}
int fun(void){
static int c=1;
c+=2;
printf("%d",c);//这里输出的值为3,5,7,而把static去掉的话就是3,3,3
return c;
}
define
后面不加;
define定义后的值可以不用常量
这样后面调用时
printf(“%d”,cube(3));
会自动被换为(“%d”,(3)* (3) *(3))
项目
为了使程序更简便
如何在·c文件中使用全局变量
声明全局变量