当前位置: 代码迷 >> C语言 >> 这是为了什么??
  详细解决方案

这是为了什么??

热度:112   发布时间:2006-07-01 23:05:16.0
这是为了什么??

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

为什么倒数第一个PRINTF和倒第二个PRINTF的结果不一样??


----------------解决方案--------------------------------------------------------
首先 a+=--c;
其次 b和c的作用域不一样

----------------解决方案--------------------------------------------------------
可是为什么a的值给传回去了本来a=3
----------------解决方案--------------------------------------------------------
理清思路,编译器是看哪个近找哪个的麻烦的,呵呵
----------------解决方案--------------------------------------------------------

//楼主应关注变量的作用域
#include <stdio.h>
main()
{
int a=3,b=2,c=1;
c-=++b;
b*=a+c;
{
int B=5,C=12;//这两个变量与外围的b,c是两回事,只是凑巧重名罢了
C/=B*2;
a-=C;
printf("%d,%d,%d\n",a,B,C);
a+=--C;
printf("%d,%d,%d\n",a,B,C);
}
printf("%d,%d,%d\n",a,b,c);
}


----------------解决方案--------------------------------------------------------
  相关解决方案