| 
 /*  变量根据作用域可分成两类:  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; }  
 |