每個運算子擁有某一級別的優先級,同時也擁有左結合性或右結合性,當運算子優先級相同時,運算子的結合性就開始發揮作用了,若運算式中存在連續的相同優先級運算子,由結合性決定哪個運算子先執行,
#include <stdio.h> void fun(int *p) { *p++; printf("%d ",*p); //22 (*p)++; printf("%d ",*p); //23 } void main() { int a[]={11,22}; fun(a); }
C語言中,右結合運算子有三類:
| 一元 | + - ! ~ ++ - - (type) * & sizeof |
| 條件 | ?: |
| 賦值 | = += -= *= /= %=>>= <<= &= ^= |= |
對于同為右結合運算子的“間接運算子 *”和“后綴運算子 ++“,運算順序與大多數情況下的左結合不同,當不使用”后綴運算子 ()”規定優先級時,會優先將右側歸并為一個運算式”p++“,先對地址進行自增,再取該地址的值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/480180.html
標籤:其他
上一篇:Java中“成員變數,區域變數,靜態變數”三者區別說明
下一篇:springcloud Alibaba 2021.0.1.0 springboot 2.7.0 整合 Swagger3.0 報錯解決方案
