逻辑算术关系的规则
这个运算的过程是不是
先 iX>iY为假
然后iX+iY结果是7,7==7为真
最终输出1
#include <stdio.h>
void main()
{
int iX=3,iY=4;
printf("iX>iY||iX+iY==7 is%d\n",iX>iY||iX+iY==7);
}
嗯
不对,判等运算符‘==’优先级大于逻辑运算符‘||’,你应该给‘||’运算符的表达式加上括号
程序结果没问题,理解也没问题~
不知道你这个问题是否已经解决, 如果还没有解决的话:根据你的描述,我的理解是你指的代码可能类似于以下的形式:
int iX = 3;
int iY = 4;
int result = (iX > iY) && (iX + iY == 7);
printf("%d", result);
如果我理解的正确的话,那么你的理解是不准确的。具体来说,
&&
的优先级高于关系运算符 >
,因此会先进行 (iX > iY) 的判断,如果为假,则直接跳过后面的表达式,因此本题中 iX > iY
不为真时,iX + iY == 7
的计算不会进行。(iX > iY) && (iX + iY == 7)
的值为真,则 result
的值为 1,否则 result
的值为 0。因此,在本题中,如果 iX
的初值为 3,iY
的初值为 4,那么程序会输出 0。
如果我的理解有误,请提供更具体的代码和问题描述。