c语言两个逻辑运算符,c语言两个逻辑运算符 || && 同时出现在一条语句里,先运算哪个?

2020-11-22 17:14:59 字数 6584 阅读 2936

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楼 匿名用户 一个等号是赋值运算符,用于把等号右边的结果赋值给左边的变量 两个等号是判等运算符,用于判断等号左右...