c++简单计算

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:21:34
求救 不懂
int a=8,b=4,k=4,m=8
if(a!=b||m!=a+b)
{a=2*k!=!m;
}

为什么算出来a=1呢
求救

a=( 2*k != !m);

a = ( 2 *4 != !8)
= ( 8 != 0)
= true

关键在于运算符的顺序。

a=2*k!=!m; 中首先计算2*k(因为算数运算符的优先级高于逻辑、关系和赋值运算符的优先级),结果为8

然后计算8(即原来的2*k)!=!m;因为原来m的值是8,所以!8即0了,故此式的返回值为1即8与0不相等成立

最后将上步的返回值赋值给a

故a的值为1

逻辑运算或与非的关系判断,“||”逻辑或,要使用逻辑或,就必须有两个表达式(即算式或变量、常量),一前一后,构成逻辑判断表达式,只要前后两个表达式的值有一个为非0值(真),整个表达式的值就为非0(真),若两个表达式的值均为0“假”,整个表达式的值就为0(假)

a为真。所以值是1