关于c语言的逻辑运算符的先后顺序例子解答

2021-03-02 08:19:06 字数 5717 阅读 6011

1楼:匿名用户

a&&b&&c||a,逻辑值1;

!(a&&b&&c||a)这个是0;

a&&b&&c没有错误,值是0。

c语言逻辑运算符顺序是什么?

2楼:匿名用户

ls,貌似&&的优先级比||大 = 赋值语句结合性 自右相左

a=b=c=1;等价于 c = 1;b = c; a = b;

-------------------------

对以上回答进行一点补充

首先声明 ||和&&运算符均属于短路运算符;

什么是短路运算符举个简单例子

若 a = 1; a||a++;运行后结果是什么,变量a值为多少?

||逻辑或对第一项a进行判断是否为0,若不为零则返回值为1;且不在进行后面的a++运算,这就是短路运算符的特性,这样一来,a的值还是1没有改变,同理 a =0; 0&&a++;的运行结果为a=0;

举个形象点的例子:

a=1 a就是真

b=0 b就是假

a||a-- 真||a++,既然已经有真的了就没必要再判断a--是否为真 1||a++;肯定是真的;

同理 b&&b++ ,假&&b--既然已经有假的了就没有必要判断b++真假,同时b++也就不会被执行

++a||++b&&++c;这个语句根据算数运算符的优先级关系 &&的优先级比||大 ‘可以这样理解’

所以先运行对++a||++b 和 ++c进行逻辑与(&&)运算,并先判断++a||++b是否为假若假则不进行++c;在判断 ++a||++b 是否为真的过程中,进行了++a和++b的||(逻辑或)运算,在逻辑或运算中先判断++a是否为零,这个过程中相当于 先a=a+1;再if (a!=0) 因为前面a=1,再运行++a,a这时等于2所以在if (a!=0) 成立则,不会运行++b;

所以运行结果为a =2 ,b=c=1;

再程序执行++a||++b&&++c;这条语句的过程中只有a变量的值发生改变,而不是楼下说的那样

“在执行“++a||++b&&++c;”语句之前完成自加运算” 这是错的·

上述方法只是为了帮助你理解这个++a||++b&&++c;语句的意思

若我写个a=b=c=1; ++a||++b&&++c||++a||++b&&++c||++a||++b&&++c;你说该怎么理解?

挨个分析优先级,?

那不得疯了

所以那样也没必要++a||++b&&++c||++a||++b&&++c||++a||++b&&++c;只要由左到右依次运行这样来判断就好了就是(++a )语句1|| (++b&&++c||++a||++b&&++c||++a||++b&&++c)语句2

(++a)==2!=0所以嘛,语句2就不执行了 这样判断也符合 该语句的执行顺序

c语言逻辑运算符有哪些,及运算先后顺序? 5

3楼:匿名用户

为|逻辑运算有三种,与或非。

1 逻辑与运算,符号为&&,形式为a&&b;

2 逻辑或运算,符号为||,形式为a||b;

3 逻辑非运算,符号为!,形式为!a。

当逻辑运算写在一起的时候,逻辑非!运算优先级最高,其次为逻辑与&&,最低为逻辑或||。

即先计算非,再计算与,最后计算或。

同类运算时,运算顺序为从左到右。

4楼:匿名用户

c语言逻辑运算符有 !(非) > &&(与) > ||(或)

5楼:凌筱泠

按先后顺序:!逻辑非运算符、&&逻辑与运算符、||逻辑或运算符、

c语言提供3种逻辑运算符,按优先级高低它们分别是

6楼:文化厨子

c语言中的三种逻辑运算符为:逻辑非(!),逻辑与(&&)、逻辑或(||)。

按优先级从高到低排列:!、&&、||,!的优先级最高,&&的优先级居中,||的优先级最低。

7楼:匿名用户

您好,sa团队给出的答案优先次序:!(非)→&&(与)→||(或)

8楼:匿名用户

逻辑运算符的优先级是相同的,且只有两个。这两个逻辑运算符是 : &&、||

关于c语言逻辑运算符一道简单的题目!

9楼:夏碧梦

这是逻辑运算符的短路判断造成的!

由于逻辑运算符||和&&实现判断左值的,显然如果根据左值就能够判断整个表达式真假的话,那剩下的就不用判断了!目前的c编译就是这样处理的!

对于逻辑或||,左值为真,整个表达式就为真;

对于逻辑与&&,左值为假,整个表达式就为假!

++x||++y&&++z中先执行逻辑或||左边的++x后x=1,左值为真,后面的自然就不用处理了!

10楼:匿名用户

这个是c语言的优化造成的。

按照c语言对逻辑或运算优化计算的规定,当逻辑或的左运算分量满足时,不再计算逻辑或的右运算分量,而直接得到逻辑或运算的结果。由于逻辑或的右运算分量不曾计算过,所以变量y,z的值也不为变化。

11楼:伊·梵

就是这样算的

逻辑运算符从左至右还确保其操作数的计算。 但是,它们计算必要的操作数的最小数目确定表达式的结果。 这称为 “短路计算”。

c语言中运算符有哪几种,优先级顺序是怎样

12楼:枫玺

c语言中,运算符除了常见的三大类,算术运算符、关

系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符。

运算符的运算优先级共分为15 级,1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。

一级运算符:标识,常量,字符串文字量,优先级提升表达式最优先执行。

二级运算符:数组下标运算(expression)、函数调用(argument-expression-list)、成员访问(identifier、 -> identifier)、后缀自增(i++)、后缀自减(i--)、 复合初始化(initializer-list)。

**运算符:前缀自增(++i)、前缀自减(--i)、单目转型表式式(取地址& ,提领 * , 正号+ ,负号-、 位反~ 逻辑否!)、求类型长度(sizeof unary-expression)。

四级运算符:强制表达式成为type-name指定的类型( type-name ) cast-expression。

五级运算符:“ * ” 乘法运算符。

六级运算符:“ + ”加法运算符。

七级运算符:<< 左移运算符;>> 右移运算符。

八级运算符:<、<=、>、>=关系运算符。

九级运算符:“ == ”等于运算符;“ != ”不等于运算符。

十级运算符:“ & ”按位与运算符。

十一级运算符:“ ∧ ”按位异或运算符。

十二级运算符:“ | ”按位或运算符。

十**运算符:“&&”逻辑与运算符。

十四级运算符:“ || ”逻辑或运算符。

十五级运算符:? :条件运算符。

扩展资料

c语言中各运算符的结合性:

1、左结合性(自左至右):

例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合方向就称为“左结合性”。

2、右结合性(自右至左)

自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。

c语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

13楼:匿名用户

c语言的运算符包括单目运算符、双目运算符、三目运算符,优先级如下:

第1优先级:各种括号,如()、等、成员运算符 . ;

第2优先级:所有单目运算符,如++、--、!、~等;

第3优先级:乘法运算符*、除法运算符/、求余运算符%;

第4优先级:加法运算符+、减法运算符-;

第5优先级:移位运算符<<、>>;

第6优先级:大于运算符》、大于等于运算符》=、小于运算符<、小于等于运算符<=;

第7优先级:等于运算符==、不等于运算符!=;

第8优先级:按位与运算符&;

第9优先级:按位异或运算符^;

第10优先级:按位或运算符|;

第11优先级:逻辑与运算符&&;

第12优先级:逻辑或运算符||;

第13优先级:三目条件运算符 ?: ;

第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;

第15优先级:逗号运算, 。

14楼:

优先级 运算符 含义 运算符类型 结合方向

15 () 圆括号 单目 自左向右

下标运算符

—> 指向结构体成员运算符

、 结构体成员运算符

14 ! 逻辑非运算符 自右向左

~ 按位取反运算符

++ 自增运算符

-- 自减运算符

- 负号运算符

(类型) 类型转换运算符

* 指针运算符

& 地址运算符

sizeof 长度运算符

13 * 乘法运算符 双目 自左向右

/ 除法运算符

% 求余运算符

12 + 加法运算符

- 减法运算符

11 << 左移运算符

>> 右移运算符

10 <、<=、>、>= 关系运算符

9 == 等于运算符

!= 不等于运算符

8 & 按位与运算符

7 ^ 按位异或运算符

6 | 按位或运算符

5 && 逻辑与运算符

4 || 逻辑或运算符

3 ?: 条件运算符 三目 自右向左

2 =、+=、-=、*=、

/=、%=、>>=、

<<=、&=、^=、|= 赋值运算符 双目

1 , 逗号运算符 双目 自左向右

中国物联网校企联盟技术部

c语言中关系运算符的优先级高于逻辑运算符吗

1楼 不全是。关系运算符的优先级高于 逻辑与 和 逻辑或 ,但低于 逻辑非 。 2楼 匿名用户 逻辑运算符里面的 很厉害的,比算术运算符优先级还高 因此正确的说法 c语言中关系运算符的优先级高于逻辑与和逻辑或,但是低于逻辑非 3楼 是的不是有个优先级歌吗 圆方括号箭头一句号 自增自减非反负 针强地址...

关于c语言以下程序运行后的输出结果是

1楼 阿瑞斯ares啊 联合体里面的所有成员共用同一块儿空间 如果你的是32位机器的话 b 0x12345678 占4个字节 根据你的输出的c 78 则你的是小端机器 0x12345678 每两个数字占一个字节 char c 只占一个字节 所以只会取b内容的一个字节的内容 你的是小端机器 所以输出为...

c语言作业编写程序读入数字字符,C语言作业:编写一个程序,读入一个数字字符0——9,将其转换为相应的整数后显示出来 求大神解答啊

1楼 匿名用户 你好,程序如下 include void main 有疑问提出望采纳 2楼 匿名用户 如下 include int main 3楼 匿名用户 include int main c语言作业 编写一个程序,读入一个数字字符0 9,将其转换为相应的整数后显示出来 4楼 include vo...