首页 > 其他 > 详细

变量作用域

时间:2015-08-14 20:59:15      阅读:237      评论:0      收藏:0      [点我收藏+]

根据代码块的定义,任何一对花括号都可构成一个代码块,代码块里用花括号括起来的复合语句当然也算一个代码块。要注意的是:

1)  代码块发生嵌套时,里层代码块的变量如果与外面的变量同名,将临时覆盖外面的变量,当这个代码块执行结束后,会恢复原先变量的值;

2)  两个独立的代码块可以用同名变量,互不影响。

3)  函数形参也具有代码块的作用,只在函数体内起作用。注意,如果在函数内重新定义了一个与形参同名的变量,则将覆盖形参。

例如:

int main(void)

{

       int i=5;

       printf("###i=%d\r\n",i); 

       for(i=0;i<3;i++) 

              printf("***i=%d\r\n",i);

       printf("###i=%d\r\n",i);

   

       system("PAUSE");

       return 0;

}

 

 

输出结果:

 

###i=5

***i=0

***i=1

***i=2

###i=3

若将for(i=0;i<3;i++)改成for(int i=0;i<3;i++),则输出结果为

###i=5

***i=0

***i=1

***i=2

###i=5

程序说明

使用for(i=0;i<3;i++)时,这个i是原有的i,所有for循环直接修改的也是原有的i。for结束时,i已变为3,所以最后输出地是###i=3

使用for(int i=0;i<3;i++)时,此时的i是一个新定义的变量,与原先的变量i同名,因此将临时覆盖原先的i,for循环中修改的也是这个临时的i。等到for循环结束后,i恢复为原来的变量,所以最后的输出是###i=5

变量作用域

原文:http://www.cnblogs.com/chenzhongdong/p/4730989.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!