2 u011207960 u011207960 于 2013.06.27 10:45 提问

c语言简单输出问题,求指导
#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语言,没有老师问

4个回答

suannai0314
suannai0314   2013.06.27 10:58

你有三次输出啊
第一个输出的时候你定义的a=6,b=7,输出的a和b就是6,7
第二次输出的时候你重新定义了b=10,a没有重新定义,所以输出结果是6,10
第三次输出的时候,第二次你重新定义的那个b已经结束了,所以输出的结果还是和第一次的一样,是6,7

yejinwei1220
yejinwei1220   2013.09.14 10:18

你第二对大括号内的变量b的作用域只到括号的结束,影响不到第三次输出,第三次输出的变量b还是刚开始的那个变量b,值并没有变。

DoctorCZM
DoctorCZM   2013.12.19 16:17

一句话帮助你理解,因为在{int b = 10;}内部的b将外面的b = 7屏蔽掉了,所以在{}内部的输出是内部b的值,其他的照常。

xy707707
xy707707   2014.06.02 17:02

你可以看看变量范围的问题,很基本的 。
另外我感觉你的输出格式不怎么样。
不过初学者,都是这样,以后注意一下就好了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!