#include <stdio.h>
#include <stdlib.h>
main ()
{
int a=6,b=7;
printf("%d,%d\n",a,b);
{
int b=10;
printf("%d,%d\n",a,b);
}
printf("%d,%d\n",a,b);
}
输出结果是:6,7 6,10 6,7
我不明白为什么打三个输出是6,7
求指导,自学c语言,没有老师问
你有三次输出啊
第一个输出的时候你定义的a=6,b=7,输出的a和b就是6,7
第二次输出的时候你重新定义了b=10,a没有重新定义,所以输出结果是6,10
第三次输出的时候,第二次你重新定义的那个b已经结束了,所以输出的结果还是和第一次的一样,是6,7
你第二对大括号内的变量b的作用域只到括号的结束,影响不到第三次输出,第三次输出的变量b还是刚开始的那个变量b,值并没有变。
一句话帮助你理解,因为在{int b = 10;}内部的b将外面的b = 7屏蔽掉了,所以在{}内部的输出是内部b的值,其他的照常。
你可以看看变量范围的问题,很基本的 。
另外我感觉你的输出格式不怎么样。
不过初学者,都是这样,以后注意一下就好了。