C语言逻辑运算符顺序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语⾔逻辑运算符顺序
a=b=c=1; ++a||++b&&++c; 问语句执⾏顺序?
a=b=c=1; ++a||++b&&++c; 问语句执⾏顺序?
解答:
“赋值语句结合性⾃右向左”是正确的,所以a=b=c=1;的执⾏顺序是:
c=1;
b=1;
a=1;
++a||++b&&++c;语句的执⾏顺序也是对的,我多啰嗦解释⼀下啊。

算数运算符⽐逻辑运算符等级⾼
⾸先,++出现在a之前,表⽰在执⾏“++a||++b&&++c;”语句之前完成⾃加运算,所以要先执⾏⾃加。

同理,b和c也是先完成⾃加运算。

这部分解释可以表述为:
++a;//即执⾏a=a+1;
++b;//即执⾏b=b+1;
++c;//即执⾏c=c+1;
逻辑运算符号也是分等级的!运算符等级最⾼,“&&的优先级⽐||⾼”,不是貌似,的确是的哦,所以
b&&c被执⾏。

注意,此时的b和c已经完成了⾃加运算。

a||(b&&c)最后被执⾏。

C语⾔中逻辑运算符_ ___的优先级⾼于算术运算符。

逻辑⾮(即‘!’操作符)优先级⾼于算术运算符。

所有的单⽬操作符优先级都⾼于双⽬和三⽬操作符。

C语⾔中逻辑运算符有三种,分别是逻辑与&&,逻辑或||,逻辑⾮!,其中&&相当于and,||相当于or,!相当于not,⽽且这三种运算符之间是有级别的,逻辑⾮的级别最⾼,其次
就是逻辑与、逻辑或。

也就是说当三者同时出现时,先执⾏逻辑⾮,再执⾏逻辑与,最后执⾏逻辑或。

当逻辑运算符、算术运算符、关系运算符、赋值运算符同时出现时,先执
⾏逻辑⾮,再执⾏算术运算符,然后关系运算符,加下来是逻辑与逻辑或,最后是赋值运算符。

例如:
if(a>b && a>c)printf("正确") 当且仅当a>b且a>c时(即两个条件要同时),此语句执⾏;
if(a>b || a>c)printf("正确") 当且仅当a>b或者a>c时(即只需要满⾜⼀个条件就⾏),此语句执⾏;
若条件a为真,!a则为假。

a==b || x==y,先执⾏a==b和x==y,然后将⼆者合并取逻辑或运算

其他的类推————————————————————————————————————————————————————————————————————————————————单⽬运算符
运算所需为⼀个的运算符叫单⽬运算符
运算符【!】、按位取反运算符【~】、⾃增⾃减运算符【++ --】、负号运算符【-】、运算符【(类型)】、和取地址运算符【*和&】、长度运算符【sizeof】
运算所需为两个的运算符叫做,例如+,-,*,/,%,<,>,>=,<=,==,!=,<<,>>,&,^,|,&&,||,=
运算所需为三个的运算符叫做,只有【?:】。

相关文档
最新文档