作业帮 > 综合 > 作业

C语言 关于逻辑运算且 b=(-1)&&(-1) b是多少,怎么算的?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/03 10:27:54
C语言 关于逻辑运算且 b=(-1)&&(-1) b是多少,怎么算的?
-1 为真 ,
那么 -1 && -1 就是真 就是1
那么b=1
再问: 为什么-1为真?
再问: -1不是负数吗 负数不是假吗,假的话 b是0吧
再答: C语言里面规定 非0 为真
0 为假 记住就是
再问: 哦还以为负值是0
再问: int a,b,c;
a=b=c=1;
++a||++b&&++c
后b的值是多少
再答: ++a 为真 那么++b没必要计算
那么b还是1
再问: 这里面是先算&&吗
再问: &&的优先级不是比||高吗
再问: 是不是应该先算&&
再答: && 的优先级高于||

但是计算还是从左边开始,这是一个栈机制
再问: 对呢
再问: 那那个语句是不是先算++b吗
再答: 你还没搞懂他是怎么计算的,你学过栈吗? 表达式计算都是从左道右,再考虑优先级问题
再问: 没有学过栈
再问: 能不能讲一个小规则
再答: 所以你根本理解不了这个执行顺序
再问: 是的
再答: 我代码测试了b还是1,说明我理解的没错
再问: 是的,我也运行过
再问: 怎么判断先优先运算还是从左往右运算呢
再答: 你可以看下栈相关的知识,再来看这题,就简单了

不管什么表达式都是从左开始计算,直到优先级选择的时候,在考虑优先级
再问: 好的,谢谢
再答: 不谢