永发信息网

--j*5+(!j==!i)是什么意思?请详解!(C++)

答案:5  悬赏:30  手机版
解决时间 2021-01-09 21:25
  • 提问者网友:川水往事
  • 2021-01-09 17:08
--j*5+(!j==!i)是什么意思?请详解!(C++)
最佳答案
  • 五星知识达人网友:旧脸谱
  • 2021-01-09 17:31
“--”优先级比“*”的高,先算--j,故前一部分的值为(j-1)*5,同时j的值变成j-1,我们假设j的值一直是最开始的值,则后部分就是比较j-1和i的值了。
接下来算(!j==!i)的值:(!j==!i)相当于计算()里等式是否成立,成立的话就是“真”,也就是“1”;否则就是不成立,也就是“0”。那么,如果一个数x如果等于0的话,!x就代表“1”了;而如果x不为0,那么!x就是“0”了。所以后部分就是如果(j-1)与i一个等于0而另一个不等于0,那么(!j==!i)就为假,即为0;反之只要(j-1)与i不同时为0,值就为1.然后两部分相加就可以了。
要注意的是,--j后j的值就改变了,变成j-1的值了!
全部回答
  • 1楼网友:琴狂剑也妄
  • 2021-01-09 21:48
首先对j减1,然后用这个值去乘5,再视后面括号的情况看是加1还是0;
当j和i都是0或者非0的时候,加的是1;若j和i分别是0和非0的数的时候,加的是0;
  • 2楼网友:底特律间谍
  • 2021-01-09 20:41
在使用j之前对j的值减1,在和5相乘,结果在加上后面的值,如果i和j都是不为0的数则加1,反之加0
  • 3楼网友:野味小生
  • 2021-01-09 19:22
这类问题不要过于纠缠,这个问题和编译器有关,尤其是对j值的判定,最好避免写这样的代码
  • 4楼网友:玩家
  • 2021-01-09 18:09
先--,然后再执行括号里面的逻辑判断,在执行乘法,最后是中间的加号;
举例:
假设 i =1,j = 1;
那么先-- j = 0;
再逻辑判断 !j == !i 应该是0
再乘法 0
最后是 0+0
所以最后结果是 0
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯