1. while循环里面不是到d=a;这句就结束了,这个理解是正确的,你的代码完全可以写成:
#include
main()
{
int a=1,b=2,c=3,d=4;
while(a++==b--
d=a;
}
a=b,c=d;
c--;
printf("%d,%d,%d,%d",a,b,c,d);
}
2. a=b,c=d;这个只是一个逗号表达式,一般不影响我们的结果;只要不使用表达式的结果,这个语句完全可以理解为:a=b; c=d;。如果要使用表达式结果,具体可以看逗号表达式的规则。
3. 整个程序的关键是while的条件。加上括号可以帮助理解,while(a++ == (b--
第一次循环:
先计算b
这时:a=2, b=1,c=3,d=2
第二次循环:
先计算b
这时:a=3, b=0,c=3,d=2
再执行:a=b,c=d;
这时:a=0, b=0,c=2,d=2
再执行:c--;
这时:a=0, b=0,c=1,d=2
#include
main() //主函数,默认返回类型为 void
{int a=1,b=2,c=3... //main的函数体:定义整形变量a、b、c并初始化赋值为1、2、3
希望能够帮助你!
只有d=a在循环体内,如果答案是那样,估计是题目打错了,应该是d=a,a=b,c=d;
while后面只跟一条语句,或{}括起来的多条语句。