#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”,a,b,c);
a+=–c;
}
printf(“%d%d%d”,a,b,c);
}
答案是25123-2
**************************************** 以上大案我都在tc上运行过,答案是正确的,但我不懂啦 !帮个忙
>> 本文固定链接: http://www.vcgood.com/archives/2440
>> 转载请注明: pointers_on_c 2008年06月07日 于 C语言帝国 发表
第一次输出:C=12/10(取整为1);A=A(3)-C(1)=2;B为原值5;
第二次输出:A(在第一次运算的基础上)=A(2)-C(自减为0)=2;
B最不好理解,其实在开始运算C值时进行了自加运算,所以输出为3,也就是2加了1;
C这次输出的是最上面运算的值,也就是C-=++B;C=1-3=-2;也就是这个时候改变了B的值,所以输出B为3;
写得不是很清楚,主要是你去消化理解,主要要了解{}中间的算法针对输出的作用域;
我学C也才20来天,一起努力和探讨