当我们在主函数中直接写一个大括号,并在括号中添加代码这样的操作是允许的。
例如:
#include<stdio.h>
int main()
{
{
int i=10;
}
printf("%d",i);
return 0;
}
若是写了如上代码,会报错,显示i没有被定义,这是因为i在块作用域中被定义了,但在大括号外依旧是未定义的。
我们做一下改动
#include<stdio.h>
int main()
{
int i= 0;
{
int i=10;
}
printf("%d",i);
return 0;
}
此时输出的i结果是0,大括号内未对i的输出结果产生影响。
我们可以在调试中看一下这个过程。
我们在int i=0处设置断点,查看i的值,左侧可以看到i=0。
接下来点击下一步,可以看到依次出现如下两图
很明显如图片左侧所示,在大括号内只有一行int i=10时,即使运行到int i=10,i的值也没有被改变。只有在大括号内再进行别的i的值的运算时,才会将i的值赋上10。