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 }
原文地址:https://www.cnblogs.com/kaimin/p/3073940.html