C 运算符优先级

学习C – C运算符优先级

表显示了C中所有运算符的优先顺序,从顶部到最低的底部。

优先级 操作符 描述
1 () 括号表达式
1 [] 数组下标
1 . 成员选择(对象)
1 -> 成员选择(指针)
1 ++ — 后缀自增 / 后缀自减
2 + – 一元 + 和 –
2 ++ — 前缀自增 / 前缀自减
2 ! ~ 逻辑非 / 按位取反
2 * 取指针指向的值
2 & 取地址运算符
2 sizeof 长度运算符
2 (type) 强制类型转换
3 * / % 乘法 / 除法 / 取余
4 + – 加号 / 减号
5 << >> 位左移 / 位右移
6 < <= 小于 / 小于等于
6 > >= 大于 / 大于等于
7 == != 等于 / 不等于
8 & 按位与
9 ^ 按位异或
10 | 按位或
11 && 逻辑与
12 || 逻辑或
13 ?: 条件运算符
14 = 赋值
14 += −= 相加后赋值 / 相减后赋值
14 /= *= 后赋值 / 相后赋值
14 %= 取模后赋值
14 <<= >>= 位左移赋值 / 位右移赋值
14 &= |= 按位与后赋值 / 按位或后赋值
14 ^= 按位异或后赋值
15 , 逗号运算符

例子

以下代码显示了运算符优先级的使用。


#include <stdio.h>
int main(void) {
      int top, score;

      top = score = -(3 + 5) * 6 + (4 + 3 * (2 + 3));
      printf("top = %d, score = %d\n", top, score);

      return 0;
}

上面的代码生成以下结果。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《C 运算符优先级》
文章链接:https://zhuji.vsping.com/315390.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。