逻辑运算符和关系运算符

问题描述:

逻辑运算符和关系运算符
int n=2,k=0;
while (k++&&n++>2);
printf("%d %d\n",k,n);
结果是?
请分析比较运算的过程!是不是按下面顺序来计算?
1、(k++)和(n++)
2、>
3、&&
结果是:1 好像不对呢
我现在疑惑的是运算符的优先级按照书上的应该是++、>、&&,实际运算是按这个顺序来算的吗?
1个回答 分类:综合 2014-09-30

问题解答:

我来补答
我还是解释一下吧:
&&只要有一个操作数是错的,那么就不要要执行第二个操作的判断了!
根据题目:
int n=2,k=0;
while (k++&&n++>2);
printf("%d %d\n",k,n);
首先判断k++&&n++中的,k++,是后加运算符,我们用到k的值还是0,用好的K的值才是1,此时k++&&n++的值就是0 了,n++根本就没有运算,所以输出的是 1 2
测试:
#include
int main()
{
int n=2,k=0;
while (k++&&n++>2);
printf("%d %d\n",k,n);
return 0;
}
结果:
1 2
Press any key to continue
 
 
展开全文阅读
剩余:2000
上一页:pass..
下一页:复合函数求值域