黑马程序员技术交流社区

标题: 关于C语言中代码块问题作业 [打印本页]

作者: sydie    时间: 2015-3-15 08:21
标题: 关于C语言中代码块问题作业
#include <stdio.h>

int main()
{
    int a = 20;
    int score = a + 100;
    printf("%d\n",score); // 120
   
    {
        int score = 50;
       {
            score = 10;
            printf("%d\n",score);//10

         }
        a = 10;
   
    }
   
    {
        score = a + 250;
        int score = 30;
        printf("%d",score);
    }
    //无效
    printf("%d\n",score);
    return 0;
}


第一个printf输出,值为 score = a + 100 = 120
第二个printf输出,score = 10
第三个printf输出为哪个??值是怎么来的??
作者: 一步一个脚印    时间: 2015-3-28 18:51
#在这里快速回 {         score = a + 250;         int score = 30;         printf("%d",score);     }这个代码块中的score是全局的,然后score=10+250;然后你又定义了一个int score=30,这个是局部的,从声明位置开始,所以输出结果是30.
作者:   张恒宇    时间: 2015-4-26 23:41
每个输出语句都是输出对应的{}里面的东西
作者:   张恒宇    时间: 2015-4-26 23:53
一步一个脚印 发表于 2015-3-28 18:51
#在这里快速回 {         score = a + 250;         int score = 30;         printf("%d",score);     }这 ...

此处的score不是全局变量。。。。是这段的代码的局部变量!分析的是没有问题的




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