1楼:a罗网天下
逻辑非的优先级最高,逻辑与次之,逻辑或最低,即:!(非) → &&(与) → ||(或)
记忆口诀:not(非) and(与) or(或)
运算规则
1)&&:当且仅当两个运算量的值都为"真"时,运算结果为"真",否则为"假"。
2) || :当且仅当两个运算量的值都为"假"时,运算结果为"假",否则为"真"。
3) ! :当运算量的值为"真"时,运算结果为"假";当运算量的值为"假"时,运算结果为"真"。
例如,假定x=5,则(x>=0) && (x<10)的值为"真",(x<-1) || (x>5)的值为"假"。
优先级
优先级与求值顺序无关。如a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后结合。
2楼:喜欢种蘑菇
同一优先级的运算符,结合次序由结合方向所决定。简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。
3楼:飞雪射鹿笑倚鸳
c语言中逻辑运算符优先级非"!"与>"&&">"||",建议混合使用的时候加上括号,这样的**便于自己和其他人维护。
4楼:我喜欢芦洁
“!”>“&&”>“‖”
5楼:
不知道的就加括号,这是常识,不必记
c语言逻辑运算符&&和||同时存在时候,不应该先算&&吗?
6楼:网海1书生
++的优先级最高,所以先算++x,结果x=1,后面
的运算符是||,这就意味着不管||后面的运算结果是什么,最后结果都是1,所以尽管&&的优先级高,但也不用计算了,所以最终结果x=1,y=0,z=0
注意一点:优先级与求值顺序无关!
7楼:匿名用户
这题估计90%以上的人答不对。
按照标准,&&的优先级高于||,应该是先计算++y&&++z,然后计算 ++x||1
但编程测试却发现,是先运算了||,由于||是从左向右执行,所以,计算了++x后,就不计算了(++x为true)。
至于为什么出现这种情况,我没找到合理的解释,期待专家解惑吧。
只能认为是写编译器的人,把|| 和 && 当作同级处理了。
所以在做实际项目时,也要避免这种情况,用()来确定运算的先后顺序。
----------------------------------明白了,表达式解析为:++x || (++y&&++z)&&优先级确实是高,所以,(++y&&++z)做为一个整体。
而||的规则就是,左侧为true,右侧不执行。 所以,即便是++x || (),右面是括号,优先级最高,也是先执行||左侧的。
8楼:奥斯卡轩
是的三目运算符号的运算顺序是与或非,但是要注意在没有小括号的前提下优先级是这样的。
9楼:
这是优化问题,不仅是优先级问题。编译系统会进行很多优化,避免不必要的计算,以提高效率。不会照你给出的计算式计算的。这是编译器很重要的功能。
10楼:匿名用户
这道题的考点是区别两个 | 和一个 | 他们的作用是什么,一个 | 两边都会计算,两个 | 时左边为1时右边就不计算了(不管后面有什么优先级高的都不计算,你试着计算一下后面的结果没有任何意义,|| 的作用就是节省cpu大脑资源来偷懒用的),&&同理取反,&&左边为0时右边不计算了节省资源,所以这题答案是0。
c语言问题 c语言逻辑运算中三个运算符!,&&,|| 哪个最优先?然后怎么个优先顺序
11楼:sydney在路上
!逻辑反,&&逻辑与,||逻辑或,
优先级:1.! 2&& 3||
望采纳~
12楼:梦回__昨天
!>&&>||,应该是这样
c语言提供3种逻辑运算符,按优先级高低它们分别是
13楼:朴力允盛
c语言中的三种逻辑运算符为:逻辑非(!),逻辑与(&&)、逻辑或(||)。
按优先级从高到低排列:!、&&、||,!的优先级最高,&&的优先级居中,||的优先级最低。
请问c语言的条件运算符?和逻辑运算符&& || ,哪个优先?
14楼:匿名用户
||优先bai级顺序:逻辑与&&,逻du辑或||,条件zhi运算符?:
可以参dao见http://****slyar.***/blog/c-operator-priority.html
若有内不解,
欢迎容追问。
15楼:
&&的优先级比||高一级。
c语言逻辑运算符 我不明白&&和||到底是怎么运算的
16楼:匿名用户
1 形式:
&&的形式为a&&b。
||的形式为a||b。
2 计算规则:
&&只有当a和b的值均非0时,结果为1,否则结果为0。
||只有当a和b的值均为0时,结果为0,否则结果为1。
3 优先级:
&&的优先级比||高,所以在写在一起时,先计算&& 再计算||。
相同符号时,自左向右计算。
4 短路原则:
对于&&,如果左操作数a为0,那么结果必然为0, 右操作数b将不参与计算。
对于||,如果左操作数a非0,那么结果必然为1, 右操作数b将不参与计算。
17楼:匿名用户
逻辑运算,方式子成立是即为真时整个式子值就为1反之为0,而对于值来说只要不是0就为真,如i&&j&&k=1,i,j=3都为真,所以整个式子为真等于1。另外要注意的是当&&左边为假时不进行右边计算,如(i=0)&&(j=3);l为0假右边j=3不进行运算,所以j还是等于2,手机写的真不方便。
18楼:**
i&&j&&k,先判断i&&j,因为i和j都大于0,所以这个命题是真的,所以i&&j这个表达式等于1,再判断后面的1&&k(ps:如果i&&j这个表达式等于0,后面的就不用判断了,整个表达式就是0了)
。因为k大于0,所以1&&k就等于1,整个表达式就等于1了。
19楼:匿名用户
逻辑正即为1,否则就为0,所以i&&j&&k=1
至于后面的就是因为&&这个运算符了,如果它的前一个为0的话那后面的就会直接忽略
不过你的结果貌似有点问题。。。。
c语言中关系运算符的优先级高于逻辑运算符吗
1楼 不全是。关系运算符的优先级高于 逻辑与 和 逻辑或 ,但低于 逻辑非 。 2楼 匿名用户 逻辑运算符里面的 很厉害的,比算术运算符优先级还高 因此正确的说法 c语言中关系运算符的优先级高于逻辑与和逻辑或,但是低于逻辑非 3楼 是的不是有个优先级歌吗 圆方括号箭头一句号 自增自减非反负 针强地址...
c语言两个逻辑运算符,c语言两个逻辑运算符 || && 同时出现在一条语句里,先运算哪个?
1楼 匿名用户 的优先级高于 ,因此先执行 逻辑运算符的优先级 逻辑非 高于 逻辑与 高于 逻辑或 c语言逻辑运算符 和 同时存在时候,不应该先算 吗? 2楼 网海1书生 的优先级最高,所以先算 x,结果x 1,后面 的运算符是 ,这就意味着不管 后面的运算结果是什么,最后结果都是1,所以尽管 的优...
c语言指针和运算符优先级的问题,C语言指针和运算符优先级的问题
1楼 lost 觉悟 和 的优先级是1,而 的优先级是2,优先级小的先处理,所以不加括号的 p 4 就等价于 p 4 ,所以先看p 4 这一部分,就类似a 4 表明这是一个数组,那么 p 4 就类似 p ,表明是一个指针,由于先是数组,那么 p 4 就是一个以指针为元素的数组,同理 p 4 先是指针...