学习c语言,运算符算是c语言的一个基础知识,运算符的两个特征就是重点的重点了,其一就是优先级,其二就是结合性,这两个特征也算是笔试的基础题目。
c语言的优先级有很多,我觉得可以先分成两大类,一类是单目运算,一类是双目运算(其中包含一个三目运算)。
单目运算:顾名思义,就是运算只需要一个变量,如c++,*c等(c表示变量名)。
结论1. 单目运算的优先级比双目运算优先级高
在c的运算符中,所有单目运算的优先级都高于双目运算。
但是单目运算还分左单目(如++i)和右单目(如i++)。
结论2.右边的单目运算高于左边的单目运算。
右单目有如下运算:函数(),数组[],结构体成员 .,结构体指针成员->,后++,后--
左单目有如下运算:逻辑!,按位反~,正值+,负值-,前++,前--,间接访问*,区地址&,sizeof,类型强制转换()。
结论3.优先级最高的是改变优先级的().(如 定义数组指针 char(*arr)[])
小括号有3种格式,函数(),类型强制转换(),改变优先级()。
单目运算就包括以上三种结论,以下讨论双目运算
双目运算的优先级也不难。
结论4. 算术运算在双目运算优先级中最高。
算术包括+,-,* ,/,% 这几个运算符的优先级跟你小学的知识一样,先乘除后加减
结论5.移位分开,比较插足。
移位分开理解为移和位,移表示移位运算(c语言只有左移和右移),位表示位运算
(位与,位或,位异或)
比较运算(大于,小于,等于,不等于)插足在移位运算和位运算的中间
结论6.罗三不是富贵豆
逻辑运算(逻辑与和逻辑或)
三目运算(唯一的三目运算)
赋值运算(=,+=,*=等)
逗号运算(,)
以上是我自己总结的运算优先级的规则,基本记住加理解还是很容易就记住的。至少我在工作学习中都是这么记忆的,希望能够帮助到大家。
最近我也在准备自己的微信公众号,大家可以在微信搜索:dazhigongzuoshi
大智工作室友情提供帮助。也可以扫描以下二维码