以下程序的输出结果是什么。

#include<stdio.h>
void main( )
{
int a=3,b=2,c=1;
{
int b=5,c=12;
c-=b*2;
a+=c;
}
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}

输出结果为:a=5,b=2,c=1
内嵌定义的变量b,c作用域只在{}内
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-21
#include<stdio.h>
void main( )
{
  int a=3,b=2,c=1;
 {
int b=5,c=12;//这里的b,c的定义覆盖了上面定义的b,c 但括号外b,c是上面定义的生效
c-=b*2;//这里c=12-2*5=2
a+=c;//这里a=3+2=5
  }
printf("a=%d,b=%d,c=%d\n",a,b,c);
}

第2个回答  2013-09-21
a=5,b=2,c=1
只有a在花括号里面被修改。
如果还不清楚,可以查看C语言局部变量一节。
相似回答
大家正在搜