====== 操作符优先级列表 ====== C语言有着过于丰富的操作符(operator),记住各个操作符的优先级不是一件容易的事,必要时应使用括号(parentheses)以保证代码的清晰可读。 下面是所有的操作符列表: ^ 操作符 ^ 说明 ^ 优先级 ^ 结合性 ^ |(expr) |括号表达式 | 16 | | |a[k] |数组下标 |::: | 左结合(left-to-right) | |f(...) |函数调用 |::: |:::| |. |struct/union成员选择 |::: |:::| |%%->%% |struct/union成员选择 |::: |:::| |++ %%--%% |后缀形式 |::: |:::| |(type name) {init} |compound literal (C99) |::: |:::| |++ %%--%% |前缀形式 | 15 | 右结合(right-to-left) | |sizeof | |::: |:::| |~ |位反(bitwise not) |::: |:::| |! |逻辑非(logical not) |::: |:::| |- + |一元加/减 |::: |:::| |& |取地址 |::: |:::| |* |指针引用 |::: |:::| |(type name) |强制转换 | 14 |:::| |* / % |二元乘/除/模 | 13 | 左结合(left-to-right) | |+ - |二元加/减 | 12 |:::| |%%<<%% %%>>%% |左移/右移 | 11 |:::| |< > %%<=%% %%>=%% |小于/大于/小于等于/大于等于 | 10 |:::| |== != |等于/不等于 | 9 |:::| |& |位与(bitwise and) | 8 |:::| |%%^%% |位异或(bitwise xor) | 7 |:::| |%%|%% |位或(bitwise or) | 6 |:::| |&& |逻辑与(logical and) | 5 |:::| |%%||%% |逻辑或(logical or) | 4 |:::| |? : |三元条件操作符 | 3 | 右结合(right-to-left) | |= += -= *= /= %= \\ %%<<=%% %%>>=%% &= %%^=%% %%|=%% |赋值 | 2 |:::| |, |逗号操作符 | 1 | 左结合(left-to-right) | {{tag>C语言}}