本帖最后由 blza3127672 于 2016-3-9 21:15 编辑
int x, y, z;
x = y = 1;
z = x++, y++, ++y;
printf("%d,%d,%d", x, y, z);
小题目这题是,逗号运算符和的++前置和后置的结合
第一步: 略过
第二步:依次赋值
第三步:x++:因为逗号运算符他把z = x++看做一个整体(如果加上括号取最后一位), 这条语句是把x之前的值赋给z,然后再自增1(根据汇编原理知道)
y++:执行这条语句把y放在寄存器加1然后在拿出来(在赋值的时候有一点特殊)
++y:执行这条语句把y放在寄存器加1然后在拿出来
第四步:输出2,3,1

有哪里说得不好的请原谅一下。
技术交流QQ:201886989 |