C语言运算符优先级详解
C 语言的运算符优先级表,算是写代码时绕不过去的一个参考资源。优先级不熟,表达式就容易出错——像写个判断结果就和你想的不一样,调半天找不到原因,十有八九是优先级坑了你。这个资料讲得蛮细,不光列出了从高到低的顺序,还把结合方向也带上了,挺实用。
数组下标、函数调用这些基本操作,优先级都挺高,基本不用担心顺序问题。写个 arr[index]
或 func(args)
,运行逻辑还是比较直观的。
成员访问用 .
和 ->
,用来访问结构体里的东西,这块要是配合指针用,优先级顺序就得记牢了,不然写成 *ptr.member
就炸了,应该是 (*ptr).member
才对。
一元运算符像 -
(负号)、++
、--
、sizeof
这些,优先级高,结合方向是从右到左,注意组合的时候别反着写,容易让人一头雾水。
再往下就是 算术运算 和 比较运算了,像 *
、/
、+
、-
、>
、<=
这些。你要是 a + b > c
这种混着写,最好加括号,逻辑更清楚。
位移运算也在优先级表里,不过用得不算太多,写二进制算法的时候才会碰上。用 a << 2> 这种操作,得先了解它是左移几位,别随手一写就上线,踩坑不少。
哦对了,如果你是刚开始写 C 的,可以收藏一份优先级表,写逻辑判断、位运算啥的,参考一下更安心。
81KB
文件大小:
评论区