C语言中运算符和结合性
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运算符和结合性
说明:
(1)同一优先级的运算符,运算次序由结合方向决定。例如*与/具有相同的优先级别,其结合方向为自左至右,因此3*5/4的运算次序是先乘后除。-和++为同一优先级,结合方向为自右至左,因此-i ++ 相当于-(i++)。
(2)不同的运算符要求有不同的运算对象个数,如+(加)和-(减)为双目运算符,要求在运算符两侧各有一个运算对象(如3+5、8-3等)。而++和-(负号)运算符是单目运算符,只能在运算符的一侧出现一个运算对象(如-a、i++、--i、(float)i、sizeof(int)、*p等)。条件运算符是C语言中惟一的一个三目运算符,如x ? a : b.
(3)从上表中可以大致归纳出各类运算符的优先级:
初等运算符()[ ] -〉·
单目运算符
算术运算符(先乘除,后加减)
关系运算符
逻辑运算符
条件运算符
赋值运算符
逗号运算符
以上的优先级别由上到下递减。初等运算符优先级最高,逗号运算符优先级最低。
位运算符的优先级比较分散(有的在算术运算符之前(如~),有的在关系运算符之前(如<<和>>),有的在关系运算符之后(如&、^、|))。为了容易记忆,使用位运算符时可加圆括号。