黑马程序员技术交流社区

标题: 求帮助。 [打印本页]

作者: الغيوم_ا    时间: 2014-7-12 19:17
标题: 求帮助。
#include <stdio.h>
int main()
{
    int a = 20;
    int score = a + 100;
   {
        int score = 50;
        {
             score = 10;
         }
        a = 10;
    }
    {
        score = a + 250;
        int score = 30;
    }
    printf("%d\n", score);
    return 0;
}
为什么最后输出的是260.


作者: 2014世界杯    时间: 2014-7-12 19:33
且听小弟个人分析:定义a(全局变量)是20,定义score(全局变量)120,之后大括号里定义的score(局部变量)为50,可以说没用(释放),并定义a(全局变量)为10;接来下的大括号里:score(全局变量)定义a+250,a(全局变量)已经被定为10,所以,score为260,之后又定义的score(局部变量)为30,结束后,并释放局部变量的score,打印输出的是全局变量260,不是局部变量,我感觉是这样的,希望你能明白




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2