码迷,mamicode.com
首页 > 其他好文 > 详细

变量作用域

时间:2015-08-14 21:00:54      阅读:103      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!