help me
#include <stdio.h>main()
{
int i=1,j=1,k=2;
if((j++||k++) && i++)
printf("%d,%d,&d\n",i,j,k);
}
结果是怎么算出的???
搜索更多相关的解决方案:
help
----------------解决方案--------------------------------------------------------
j++是先取j得值,由于j是1,整个||式子为真。后面就不算了,但j自己要加一,k就不自加了。
但对于&&左边为真,还要计算右边,所以i也自加。
最后,i=j=k=2
----------------解决方案--------------------------------------------------------
同意楼上,不知道c里面有没有&和|啊??
----------------解决方案--------------------------------------------------------
回复 1# 的帖子
这种运算取决运算符的结合性和优先级,不过好像很少有人去这样写程序,自己读起来都不方便啊! ----------------解决方案--------------------------------------------------------
opinion
这种运算取决运算符的结合性和优先级,++是先取j得值,由于j是1,整个||式子为真。后面就不算了,但j自己要加一,k就不自加了。但对于&&左边为真,还要计算右边,所以i也自加。
即对于||只要一边成立就都成立,而&&需要两边都成立,在变成中一定要特别注意这一点
----------------解决方案--------------------------------------------------------
那如果是
int x=3,y=4,z=5;表达式!(x>y)+(y!=z)||(x=y)&&(x-z)的结果是多少?
----------------解决方案--------------------------------------------------------
2..
----------------解决方案--------------------------------------------------------