1楼:匿名用户
&&的优先级高于||,因此先执行&&
逻辑运算符的优先级:
逻辑非 高于 逻辑与 高于 逻辑或
c语言逻辑运算符&&和||同时存在时候,不应该先算&&吗?
2楼:网海1书生
++的优先级最高,所以先算++x,结果x=1,后面
的运算符是||,这就意味着不管||后面的运算结果是什么,最后结果都是1,所以尽管&&的优先级高,但也不用计算了,所以最终结果x=1,y=0,z=0
注意一点:优先级与求值顺序无关!
3楼:匿名用户
这题估计90%以上的人答不对。
按照标准,&&的优先级高于||,应该是先计算++y&&++z,然后计算 ++x||1
但编程测试却发现,是先运算了||,由于||是从左向右执行,所以,计算了++x后,就不计算了(++x为true)。
至于为什么出现这种情况,我没找到合理的解释,期待专家解惑吧。
只能认为是写编译器的人,把|| 和 && 当作同级处理了。
所以在做实际项目时,也要避免这种情况,用()来确定运算的先后顺序。
----------------------------------明白了,表达式解析为:++x || (++y&&++z)&&优先级确实是高,所以,(++y&&++z)做为一个整体。
而||的规则就是,左侧为true,右侧不执行。 所以,即便是++x || (),右面是括号,优先级最高,也是先执行||左侧的。
4楼:奥斯卡轩
是的三目运算符号的运算顺序是与或非,但是要注意在没有小括号的前提下优先级是这样的。
5楼:
这是优化问题,不仅是优先级问题。编译系统会进行很多优化,避免不必要的计算,以提高效率。不会照你给出的计算式计算的。这是编译器很重要的功能。
6楼:匿名用户
这道题的考点是区别两个 | 和一个 | 他们的作用是什么,一个 | 两边都会计算,两个 | 时左边为1时右边就不计算了(不管后面有什么优先级高的都不计算,你试着计算一下后面的结果没有任何意义,|| 的作用就是节省cpu大脑资源来偷懒用的),&&同理取反,&&左边为0时右边不计算了节省资源,所以这题答案是0。
c语言中&&比||的优先级高,但在这两个同时出现时又按从左至右运算?
7楼:忍踏群芳与侬依
其实这类问题可以变一个小程序直接运行看结果,这样就更能理解了。
8楼:匿名用户
|的&&比||的优先级高; a||b&&c,是先运算b&&c ,再 a||(b&&c)。
程序验证:
void main()
输出结果为1。
9楼:匿名用户
||&&优先级是比||高
&&操作符的左操作数总是首先进行求值,如果他为真,然后再对右操作数进行求值
若左操作数为假,那么右操作数就不再求值了。||操作符也有相同的特点,也是先对左操作数
进行求值,这是这两个逻辑操作符的一大特点,这个行为常被称为“短路求值”
然后就主要是看操作数的定义了,看他有没有包括了表达式,上机试下就好
10楼:非突
|| 类似加法, && 类似乘法
11楼:
&&要高。
printf("%d",1||1&&0); 输出1
c语言中逻辑运算符非"!"与"&&"或"||"的优先级怎么说?
12楼: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.
逻辑运算最后结合。
13楼:喜欢种蘑菇
同一优先级的运算符,结合次序由结合方向所决定。简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。
14楼:飞雪射鹿笑倚鸳
c语言中逻辑运算符优先级非"!"与>"&&">"||",建议混合使用的时候加上括号,这样的**便于自己和其他人维护。
15楼:我喜欢芦洁
“!”>“&&”>“‖”
16楼:
不知道的就加括号,这是常识,不必记
c语言问题 c语言逻辑运算中三个运算符!,&&,|| 哪个最优先?然后怎么个优先顺序
17楼:sydney在路上
!逻辑反,&&逻辑与,||逻辑或,
优先级:1.! 2&& 3||
望采纳~
18楼:梦回__昨天
!>&&>||,应该是这样
求通俗易懂的解释下c语言中 &&、||两个逻辑运算符!
19楼:匿名用户
&& ”与“逻辑,它连接的两个都为真时,结果为真,比如1&&1结果为1;
1&&0,0&&1结果都为0
|| ”或“逻辑,它连接的两个有一个为真时,结果为真,比如1&&1结果为1,1&&0,0&&1结果都为1
c语言中,逻辑运算符, (&& 且与) 那么(或||)这个运算符在键盘那里输出?
20楼:凉菜弱受
‘|’和‘\’在一个键上 按住shift+'\'可以得到。 ‘&’和‘7’在一个键上 按住shift+'7'可以得到。采纳哦
c语言中:&&和||符号是什么意思?
21楼:匿名用户
|都“&&”表示 与,意为同时都要满足。
“||”表示 或,意为二者或多着只要满足其中一个。
在c语言中,&&和||都属于逻辑运算符,并且都是双目运算符。
逻辑运算符总共有3个,分别是"&&"、"||"和"!"。a && b,一假必假,结合性从左至右。||是逻辑或运算符,a || b,一真必真,结合性从左至右。
&&和||在java和php以及c#中都是逻辑操作符,也叫条件操作符。
扩展资料 :
c语言中&&是一种双目运算符,表示与运算,而当左边所给表达式或变量为0时,不再计算右 侧,整个表达式为零。
逻辑运算符是用来判断一件事情是"成立"还是“不成立”,或者说是“真”还是“假”,判断的结果只有两个值,用数字表示就是“0”和“非0”。
其中,“非0”表示该逻辑运算的结果是“真”,“0”表示这个逻辑运算表达式的结果为“假”。
22楼:匿名用户
|”“&&”表示 与,意为同时都要满足
“||”表示 或,意为二者或多着只要满足其中一个我们可以用**来举例:
**中有两个输出语句,分别为good和nice,我们分析下,a = b = 1,c = 2,第一个判断条件中,我们判断 a == b && (且)a == c,很明显,a等于b但是a不等于c,所以不成立,不输出good.下一行的输出语句中,也是同样的判断,但是用了||,前面我们已经看过了,a==b成立,所以不管后面的成不成立,都要执行!
结果图:
拓展资料:1.&&和||在java和php以及c#中都是逻辑操作符,也叫条件操作符。
2.c语言中&&是一种双目运算符,表示与运算,而当左边所给表达式或变量为0时,不再计算右 侧,整个表达式为零。
23楼:
在c语言中,&&和||都属于逻辑运算符,并且都是双目运算符。逻辑运算符总共有3个,分别是"&&"、"||"和"!"。
逻辑运算符是用来判断一件事情是"成立"还是“不成立”,或者说是“真”还是“假”,判断的结果只有两个值,用数字表示就是“0”和“非0”。其中,“非0”表示该逻辑运算的结果是“真”,“0”表示这个逻辑运算表达式的结果为“假”。
&&是逻辑与运算符,a && b,一假必假,结合性从左至右。
||是逻辑或运算符,a || b,一真必真,结合性从左至右。
24楼:匿名用户
左边那个是并且的意思,一般用于语句的逻辑判断,右边那个是运算符,相当于与
25楼:匿名用户
c语言中&&和||运算符是逻辑运算符,&&是逻辑与,||是逻辑或。以下是这两种运算符的真值表:
关于c语言中 || 和 &&的用法
26楼:匿名用户
|&& 和 || 都是逻辑表达式里常用的,一般用法是 if(表达式1 || 表达式2) 或者 if(表达式1 && 表达式2)
|| 表示 或 满足其中一个,整个表达式就为真,就满足if判定的条件
例如 if(1 || 0) std::cout <<"hello!\n"; 输出为hello
&& 表示 且 if括号内的表达式都为真 才能满足if判定的条件 才会执行if{}里的语句
不清楚请追问
27楼:谁敢横刀立马
|表||是逻辑或,例子如下
//表达式1||表达式2
//如果表达式1是true或者表达式2是true,整条式子的结果就是true,否则是false
int a=0;
bool z=(a>0||a==0);
//这个例子中条件a==0,所以整条表达式的结果是true,如果表达式1的结果是true,
//那结果也是true
&&是逻辑与,例子如下:
//表达式1&&表达式2
//这个操作符要求两边的表达式都是true整条表达式才是true,如下
int a=0,b=0;
bool z=(a==0&&b==0);
//这个例子中两边的表达式都是true,所以最后的结果是true,如果有一边的表达式不是true,,结果就是false
28楼:刘培鑫
||是逻辑或,例子如下
//表达式1||表达式2
//如果表达式1是true或者表达式2是true,整条式子的结果就是true,否则是false
int a=0;
bool z=(a>0||a==0);
//这个例子中条件a==0,所以整条表达式的结果是true,如果表达式1的结果是true,
//那结果也是true
&&是逻辑与,例子如下:
//表达式1&&表达式2
//这个操作符要求两边的表达式都是true整条表达式才是true,如下
int a=0,b=0;
bool z=(a==0&&b==0);
//这个例子中两边的表达式都是true,所以最后的结果是true,如果有一边的表达式不是true,,结果就是false
29楼:尘世间的菜鸟
#include
void main()
30楼:匿名用户
|| 和数学上的 "或者"差不
多 比如 x>1 || x<100 在c语言中 是从左自有判断 如果x>1成立就不会再继续判断 || 之后的式子 ,只有x>1不成立才会继续判断 || 之后的式子
1 || 1 为真
1 || 0 为真
0 || 1 为真
0 || 0 为假
&& 和数学上的"并且"差不多 只有 && 前后的试子都成立才会为真 也就是说 && 是从左往右 运算过程中 只要有一个为假 就不会再往后面判断
1 && 1 为真
1 && 0 为假
0 && 1 为假
0 && 0 为假 :这个要注意, (我上面只是说差不多哈) 你总不能错误的事情做两次就是正确的了吧
|| 与&& 的运算结果都只是真或者假
c语言中的和两个运算符有什么区别
1楼 匿名用户 在c语言中,运算符 和运算符 所表示的意义不同。 是赋值运算符,它的含义是将右侧表达式的值赋给左侧的变量。 是关系运算符,如果两侧表达式的值相等,则其值为1,否则为0。 2楼 匿名用户 一个等号是赋值运算符,用于把等号右边的结果赋值给左边的变量 两个等号是判等运算符,用于判断等号左右...