C程序题,菜鸟求助!!!

来源:百度知道 编辑:UC知道 时间:2024/09/25 04:34:34
main()
{ int x,y,z;

x=y=z=1;
++x&&--y&&++z;
printf("%d,%d\n",x,y,z);
}
结果为什么是x=2,y=0,z=1

&&是逻辑运算符,“且”得意思
++x&&--y&&++z就可以看做++x且--y且++z
开始做++x运算,x自加1,变为2再赋值打印,继续--y运算,y自减1,变为0
再赋值打印
关键是现在y变为0了,在&&逻辑运算中,如果左边为假(即值为0),则不运算后面的计算,如果左边为真(即值为非0)才继续运算右边的式子
所以z根本没有运算过,值不变,还是为1

个人看法,仅供参考

晕死。这种运算符号的优先级别的问题

开发中是不可能出现这种问题的,何况在你自己拿不准的情况下

你完全可以用小括号 括起来 绝对不会错。。。

还是别搞这些了,除非你是应付考试