c语言 逻辑与 逻辑或问题,求大神详细解释下。

&&的优先级不是比||高吗?执行这一句时 ++a||++b&&++c;
不应该先执行|++b&&++c;吗?这一句要怎样理解?++a||(++b&&++c;)还是(++a||++b)&&++c;
自己在编写的时候感觉是?++a||(++b&&++c;)这样运行的,++a成立后不执行后续语句。但是&&优先级高于||,求大神解释。
#include <stdio.h>
int main(int argc, char *argv[])
{
int a=1,b=2,c=3;
++a||++b&&++c;
printf("%d %d %d",a,b,c);
return 0;
}

输出答案不是2,2,3么?
&&的优先级不是比||高,所以按照++a||(++b&&++c;)执行,计算机先判断a++为真,那么后续的就不再继续执行了。实际上程序只执行了++a,那么就变为2了,其余都不变。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-30
&&的优先级和||优先级应该是一样的,在优先级相同的时候,从左到右进行运算追问

书上和百度上说&&比||高一级。

追答

你用一个简单例子测试一下就知道了
int main(int argc, char *argv[])
{
int a=1,b=2,c=3,x;
x=ab&&c<a;
printf("%d %d %d,%d",a,b,c,x);
return 0;
}

在C语言中,逻辑与、逻辑或和逻辑非有什么区别?
在C语言中,逻辑与(&&)、逻辑或(||)和逻辑非(!)是三种基本的逻辑运算符。它们分别用于连接布尔表达式并判断它们的真假。逻辑与(&&):逻辑与连接两个布尔表达式,只有当两个表达式的值都是真时,整个表达式的值才是真。否则,整个表达式的值就是假。例如:逻辑或(||):逻辑或连接两个布尔表达...

c语言的题目,关于"逻辑与"和"逻辑或",谁能解释?
晕,优先级最高的是单目运算符,比如上面的++和--,而出现多个单目运算时,从有向右依次运算,在编译原理中,++,--和你说的逻辑运算没有任何关系 他们不会以逻辑运算的先后分组,都是独立的运算 不是和我说得一个意思么...

C语言中逻辑与逻辑或以及其他怎么理解?
逻辑或 逻辑与都是单目运算符,也就是只有一个操作数。他们都是针对的二进制位来说的。。。举例:真为1,假为0,逻辑与 是 两真则真,其他情况为假 如3&5应该先写成二进制 00000011 (3)00000101 (5)从右到左按位进行与运算,,,两真则真。。。所以 与过之后 00000001就...

C语言中的&&和||的区别是什么,详细点啊。附上程序要求。请着重解释&&...
&& 是逻辑与,两者为真结果为真,一真一假结果为假,两者为假结果更为假。|| 逻辑或, 两者之一为真结果为真, 两者为真结果为真,两者为假结果为假。题目没有说有几个作案人。那么可以随便假定,只要符合6个条件即可。假定:A,B,C,F = TRUE D,E = FALSE 条件1,A || B == TRUE; ...

c语言逻辑与和逻辑或和逻辑非的运算
逻辑与:p且q 全真则真,有假则假 逻辑或:p或q 有真则真,全假则假 逻辑非:非p p假,则非p真,p真,则非p假 “逻辑与”和“逻辑或”的关系:当“p且q ”真,则“p或q”真;当“p或q”假,则“p且q ”假。

C语言中的 与或非运算
C语言中的与、或、非是C语言的逻辑运算符。1、逻辑与 在C语言中逻辑与用&&表示。举例:a&&b(其中a、b都代表一个条件)如果a和b都为真,则结果为真,如果a和b中有一个条件为假,则结果为假。2、逻辑或 在C语言中逻辑或用||表示。举例:a||b(其中a、b都代表一个条件)如果a和b有一个...

谁给解释c语言中的 逻辑或与逻辑与
&& 运算,即左边的值如果非0,右边的值也非0,则输出 1,否则输出 0;并且当左边值为 0时,不判断右边值是否非0;|| 运算,即左边值若为 0,右边值也为 0 ,则输出 0,否则输出 1;若左边值为 1 ,则不再判断右边值是否非 0 ...

c语言中逻辑与 逻辑或的问题
不执行,这一特性称为短路运算。

关于c语言逻辑表达式的问题,求高手啊
c语言中,为了加快编译速度,有一条这样的规定,当一个逻辑表达式的值能够确定下来的时候,它不会执行下面的语句。例如:a && b这个表达式,如果a为假,则 a&&b一定为假,不管b为真,还是假,也就是a等于假时,这个表达式的值已经确定了。所以b不会执行了。但,如果a为真,则 a&&b的值就确定不...

求人讲解一下c语言三种逻辑运算符的用法。。实在搞不懂
首先得清楚C的逻辑值是“真”和“假”两个,用1和0表示,1代表真,0代表假。C规定凡不为0的逻辑值就是1。!——逻辑非,单目运算符,凡不为0的变量被!一下就是0,而0被!一下就是1。比如有int x=-3,y=!x,z=!y;,那么最后y=0、z=1。&&——逻辑与,双目运算符,当前后两个变量的...

相似回答