C语言-变量作用域

来源:互联网 发布:云服务器端口8080作用 编辑:程序博客网 时间:2024/04/28 13:23
  1. #include <stdio.h>  
  2.   
  3. /*全局变量: 
  4.     作 用 域:当前文件中从定义的这一行,到文件结尾可用 
  5.     生命周期:程序启动到程序退出*/  
  6. int w;  //全局变量有默认初始值,int类型默认初始值为0  
  7.   
  8. void changeW(){  
  9.     w  = 8;     //修改全局变量  
  10.   
  11.     /*局部变量: 
  12.         作 用 域:在函数内定义的变量(和形参),作用域仅在这个函数代码块中 
  13.         生命周期:从定义的这一行开始,到代码块结束*/  
  14.     int a;  //局部变量的默认值不确定是0  
  15.     printf("a:%d\n", a);    //不确定  
  16. }  
  17. void change_w(int i){   //形参也是局部变量  
  18.     int w;  
  19.     w  = 68;    //使用变量时,优先从函数内部调用  
  20. }  
  21. void main() {  
  22.     printf("w:%d\n", w);    //0  
  23.     changeW();  
  24.     printf("w:%d\n", w);    //8  
  25.     change_w(6666);  
  26.     printf("w:%d\n", w);    //8  
  27.   
  28.     { /*内部代码块*/  
  29.         int i;  //当前代码块中的局部变量  
  30.         {  
  31.             int j = 87; //当前代码块中的局部变量  
  32.             printf("j:%d\n", j);  
  33.         }   //到这里,j的声明周期结束  
  34.         printf("i:%d\n", i);  
  35.         //printf("j:%d\n", j);  //引用不到!  
  36.     }   //到这里,i 的声明周期结束  
  37.     //printf("i:%d, j:%d\n", i, j); //引用不到!  
  38.   
  39.     int i = 456;    //main方法的局部变量  
  40.     void funcInside(){  
  41.         i = 646;        //main方法的局部变量,内部函数可以调用  
  42.   
  43.         int i = 348;    //内部函数自己的局部变量  
  44.         i = 22222;      //上一行有定义,优先使用内部函数自己的局部变量  
  45.         printf("i in funcInside:%d\n", i);  //22222  
  46.     }  
  47.     funcInside();       //调用内部函数  
  48.     printf("i in outside:%d\n", i);         //646  
  49. }  
0 0
原创粉丝点击