黑马程序员技术交流社区

标题: 来大神来大神, [打印本页]

作者: qq230546    时间: 2016-5-15 00:20
标题: 来大神来大神,
main()
{int x=10,y=9;
int a,b,c;
a=(--x==y++)?--x:++y;
b=x++;
c=y;
printf("%d%d%d",a,b,c);
}
输出啊a,b,c为8 8 9
为什么求解?
ab,c为8 8 10
搞错了
作者: qq230546    时间: 2016-5-15 00:23
help MEhelp MEhelp MEhelp MEhelp ME
作者: 2528    时间: 2016-5-15 08:33
--x 是 9 y++ 是 9
所以有:--x == y++ 到这一步 (x 的值为9 y 的值为10)把 a = --x 相当于 a = 8 (此时 x == 8);:后面的 ++y 没有执行(y == 10 不变) b = x++ ; b = 8 (x == 9) c = y 相当于 c = 10 ;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2