深秋的落叶
ARM && Linux kernel

  在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,
可以看出,在复合语句(蓝字显示的部分)中,被重新定义的变量,就使用新定义的值,若在复合语句中没有被重新定义,就使用函数中原来的值。

posted on 2007-10-06 18:02  刘伟_luvi  阅读(1994)  评论(1编辑  收藏  举报