C语言运算符优先级详解

C 语言的运算符优先级表,算是写代码时绕不过去的一个参考资源。优先级不熟,表达式就容易出错——像写个判断结果就和你想的不一样,调半天找不到原因,十有八九是优先级坑了你。这个资料讲得蛮细,不光列出了从高到低的顺序,还把结合方向也带上了,挺实用。

数组下标函数调用这些基本操作,优先级都挺高,基本不用担心顺序问题。写个 arr[index]func(args),运行逻辑还是比较直观的。

成员访问.->,用来访问结构体里的东西,这块要是配合指针用,优先级顺序就得记牢了,不然写成 *ptr.member 就炸了,应该是 (*ptr).member 才对。

一元运算符-(负号)、++--sizeof 这些,优先级高,结合方向是从右到左,注意组合的时候别反着写,容易让人一头雾水。

再往下就是 算术运算比较运算了,像 */+-><= 这些。你要是 a + b > c 这种混着写,最好加括号,逻辑更清楚。

位移运算也在优先级表里,不过用得不算太多,写二进制算法的时候才会碰上。用 a << 2> 这种操作,得先了解它是左移几位,别随手一写就上线,踩坑不少。

哦对了,如果你是刚开始写 C 的,可以收藏一份优先级表,写逻辑判断、位运算啥的,参考一下更安心。

doc 文件大小:81KB