/* 变量根据作用域可分成两类: 1、局部变量 2、全部变量 局部变量: 1、定义:在函数内(代码块)定义的变量叫做局部变量(函数的形参也是局部变量) 2、作用域:从定义变量的那一行开始,到代码块结束 3、生命周期:从定义变量的那行开始,分配存储空间到代码块结束,所占内存被回收 4、没有固定的初始值
全局变量: 1、定义:在函数外面定义的变量叫全局变量 2、作用域:从定义变量那行开始一直到文件结尾 3、生命周期:程序一启动就会分配存储空间,直到程序退出才会被销毁 4、默认的初始值是0 */
#include <stdio.h>
int b = 0; int a = 20;//定义在函数外面,属于全局变量
void test() { int a =30;//定义在函数内部,属于局部变量 }
void test2() { b++; int i = 0; i++; printf("b=%di=%d\n", b,i); }
int main() { printf("a=%d\n", a);//这个输出的是上面的全局变量a=20 int a = 10; printf("a=%d\n", a);//这个输出的是局部变量a=10
test2();//输出结果是:b=1 i=1 test2();//输出结果是:b=2 i=1 test2();//输出结果是:b=3 i=1 /*原因:b是全局变量,每调用test2修改一下b的值都会储存下来,而i是个局部变量 每次test运行完变量i也就随着代码块被销毁,所以每次输出都是1*/
return 0; }
|