局部变量(Local Variable):定义在函数体内部的变量,作用域仅限于函数体内部。离开函数体就会无效。再调用就是出错。
#include <stdio.h>
int main(){
int i = 10;
}
这里的i是一个定义在main()函数中的局部变量,作用域只能在main()函数中。如何理解?
局部变量的作用域
例一
#include <stdio.h>
int main(){
int i;
for(i=0;i<10;i++){
printf("%d\t",i);//内部正常使用
}
i += 10;
printf("%d",i);//外部也能正常使用
}
该段代码能正常编译打印。
例二
#include <stdio.h>
void test();
int mian(){
int i = 10;
test();
printf("%d",i);
}
void test(){
i += 20;//编译失败,外部报错
}
这段代码通过函数回调的方法,将test函数中的定义的局部变量i回调至main()函数中使用,定义的i无法在main函数中使用,因为函数由上到下执行。i+=20执行前未定义i,故报错。
全局变量(Global Variable):所有的函数外部定义的变量,它的作用域是整个程序,也就是所有的源文件,包括.c和.h文件。
#include <stdio.h>
int m = 100;//全局变量,各个函数中都能使用
void test1();
int main() {
printf("%d\t", m);
test1();
}
void test1() {
m += 200;
printf("%d", m);
}
该段代码执行之前,首先在所有函数外定义一个全局变量m,test()函数中首次使用,后再main()函数中打印出,第二次在main()函数直接使用,打印100。
第一次编写时间2023年2月18日。
//不积小流,无以成江海。不积跬步,无以至千里。//