C语言中无条件大括号的作用

先看代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main()
 5 {
 6     int i=40;
 7     printf("Begin:\t%i\n",i);
 8     {
 9         printf("Before \t int i=10 i=%i\n",i);
10         int i=10;
11         printf("After \t int i=10 i=%i\n",i);
12         //goto lbl;
13     }
14     {
15         printf("Before \t int i=20 i=%i\n",i);
16         i=20;
17         printf("After \t int i=20 i=%i\n",i);
18         {
19             printf("Before \t int i=30 i=%i\n",i);
20             int i=30;
21             printf("After \t int i=30 i=%i\n",i);
22             //lbl:;
23         }
24         printf("After \t {} i=%i\n",i);
25     }
26     printf("End:\t%i\n",i);
27     return 0;
28 }

运行结果:

 

总结:

1、如果{}的外部有定义,在内部可直接使用,影响外部定义(第10行)

2、如果{}的外部有定义,在内部又重新定义,则使用内部定义,生命周期为{}结束,并且{}外的值不变(第16行)

类似:

1 if(1)
2 {
3     ...  
4 }

 

posted @ 2013-05-12 14:13  wkm123  阅读(708)  评论(0编辑  收藏  举报