在C语言中,我们知道放在函数中的普通变量的值只能通过return语句返回值,但是如果只是把复合语句放在主函数中,则复合语句中的变量定义又该如何呢?我们来看下边一个例子:
#include <conio.h>
#include <stdio.h>
int main(){
int a=3,b=2,c=1;
clrscr();
printf("[1]: %d, %d, %d\n", a, b, c);
{
int b=5;
int c=12;
printf("[2]: %d,%d,%d\n",a,b,c);
}
printf("[3] %d,%d,%d,",a,b,c);
getch();
return 0;
}
结果是什么呢。在Turob C中的运行结果为:
[1]: 3, 2, 1
[2]: 3,5,12
[3] 3,2,1,
可以看出,在复合语句(蓝字显示的部分)中,被重新定义的变量,就使用新定义的值,若在复合语句中没有被重新定义,就使用函数中原来的值。