c51语言中属于三目运算符的是,C51程序设计中的运算符应用

优先级排列:

1.优先级最高的:并不是真正意义上的运算符

()改变优先级的符号(括号)、GrouPINg operator

[] 数组下标操作符 Array aCCess

()函数调用操作符 function access

-> 结构成员选择操作符(我把它叫做“箭头”)member access from a pointer

.    点 member access from a object

2.单目运算符:优先级最高,结合性从右到左

!~(取反)logICal negation   ,bitwise complement

++ --(自增自减)pre-increace ,pre-decrease

-(负号)+(正号) minus, plus

*(取指针)derefenrence &(取地址)

(type)(强制类型转换)sizeof(取占用内存大小)

3.算术运算符:

* / %(取模、求余)优先级高于 + -

multipication, division, modulus, addition, subtraction

4.按位运算符

<>   右移,左移 bitwise shift left/right

5.关系运算符

>=   comparision less-than/ less-than-or-equal-to/ greater than/ greater-than-or-equal-to

优先级高于

==     !=           comparision equal-to/ not-equal-to

6. 逻辑运算符:

按位逻辑运算符优先级高于其他逻辑运算符

每个逻辑运算符的优先级都不同:

& bitwise AND

^   bitwise exclusive OR

|   bitwise inculsive(normal) OR

&&    logical AND

| |     logical OR

7. 三目运算符: 条件运算符Ternary conditional (if-then-else的简写)

?:结合性:从右向左

8. 赋值操作符 assignments及其复合运算符

=    结合性:从右向左

+= -= *= /= %= &= ^= |= <<= >>=

9. 优先级最低的:逗号运算符(顺序执行操作符 Sequential evaluation operator)

分割函数参数的逗号并非逗号运算符,声明里的变量列表之间的逗号也不是逗号运算符,只是起分割的作用。逗号运算符连接的是表达式。

需要注意的地方:

10. 使用括号能提高程序的易看性,降低程序的出错率。在不知道优先级的地方,尽量多使用括号。

11. 过多使用括号,是程序代码增加,简单和易用本就是一对矛盾。所以,尽可能多了解优先级知识。记忆规则是:

优先级最高的和优先级最低的要记牢;

单目运算符的优先级很高,仅次于部分符号。

算术运算符的优先级很高,但次于单目运算符;

移位运算符的优先级比算术运算符底,但是比关系运算符要高。

关系运算符中,==与!=优先级低于其他关系优先级;

所有的逻辑运算符的优先级都低于关系运算符。不同的逻辑运算符的优先级不同。

三目运算符的优先级很低,但是高于赋值运算符;

赋值操作符的优先级很低,仅高于逗号运算符。

12. 括号有时候带来的不一定是好事。比如g(x,y)与g((x,y)),函数参数的数量就是不同的。

13. 运算符的优先级与表达式的求值顺序

c语言只有四个运算符(&& || ?: ,)存在规定的求值顺序。

a && b 先对a求值,如果a为0(假),则继续对b求值;如果a为非0(真),则不对b求值;

a || b     先对a求值,如果a为0(假),则不对b求值;如果a为非0(真),则对b求值;

a ? b : c   先对a求值,根据a的值去求b或者c的值。也就是说b、c不同是被求值;

a,b      先对左侧操作数a求值,然后a的值被丢弃,最对右侧操作数b求值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值