C语言中的运算符优先级是怎么样的?

下面按优先级从高到低的顺序总结一下各种运算符,每一条所列的各运算符具有相同的优先 级,对于同一优先级的多个运算符按什么顺序计算也有说明,双目运算符就简单地用“左结 合”或“右结合”来说明了。和指针有关的运算符* & ->也在这里列出来了,以后再详细解释。

1 、标识符、常量、字符串和用()括号套起来的表达式是组成表达式的最基本单元,在运算中做 操作数,优先级最高。

2、后缀运算符,包括数组取下标[]、函数调用()、结构体取成员.、指向结构体的指针取成员- >、后缀自增++、后缀自减--。如果一个操作数后面有多个后缀,按照离操作数从近到远的顺序 (也就是从左到右)依次运算,比如a.name++,先算a.name,再++,这里的.name应该看成a的 一个后缀,而不是把. 看成双目运算符。

3、单目运算符,包括前缀自增++、前缀自减--、 sizeof、类型转换()、取地址运算&、指针间接 寻址*、正号+、负号-、按位取反~、逻辑非! 。如果一个操作数前面有多个前缀,按照离操作数 从近到远的顺序(也就是从右到左)依次运算,比如!~a,先算~a,再求!。

4、乘*、除/、模%运算符。这三个运算符是左结合的。 5、加+、减-运算符。左结合。

6、移位运算符<<和>>。左结合。

7、关系运算符< > <= >=。左结合。

8、相等性运算符==和!=。左结合。

9、按位与&。左结合。

10、按位异或^。左结合。

11 、按位或|。左结合。

12、逻辑与&&。左结合。

13、逻辑或||。左结合。

14、条件运算符:?。在第 2 节 “if/else语句”讲过Dangling-else问题,条件运算符也有类似的问 题。例如a ? b : c ? d : e是看成(a ? b : c) ? d : e还是a ? b : (c ? d : e) ? C语言规 定是后者。

15、赋值=和各种复合赋值(*= /= %= += -= <<= >>= &= ^= |=)。右结合。

16、逗号运算符。左结合。

  • C璇█杩愮畻绗︾殑浼樺厛绾椤哄簭鏄粈涔?
    绛旓細c璇█杩愮畻绗︾殑浼樺厛绾ч『搴忥細鎷彿杩愮畻绗︺佷竴鍏冭繍绠楃銆佺畻鏈繍绠楃銆佺Щ浣嶈繍绠楃銆佸叧绯昏繍绠楃銆1銆佹嫭鍙疯繍绠楃 鎷彿杩愮畻绗﹀叿鏈夋渶楂樼殑浼樺厛绾э紝瀹冨彲浠ユ敼鍙樺叾浠栬繍绠楃鐨勪紭鍏堢骇椤哄簭銆備娇鐢ㄦ嫭鍙峰彲浠ユ槑纭〃杈惧紡鐨勮绠楅『搴忋2銆佷竴鍏冭繍绠楃 涓鍏冭繍绠楃鍖呮嫭姝e彿+銆佽礋鍙-銆侀掑杩愮畻绗++銆侀掑噺杩愮畻绗--銆佸彇鍦板潃杩愮畻绗&銆佸彇...
  • C璇█杩愮畻绗︾殑浼樺厛绾
    绛旓細1銆丆璇█涓紝杩愮畻绗︾殑杩愮畻浼樺厛绾у叡鍒嗕负15绾с1绾ф渶楂橈紝15绾ф渶浣銆傚湪琛ㄨ揪寮忎腑锛屼紭鍏堢骇杈冮珮鐨勫厛浜庝紭鍏堢骇杈冧綆鐨勮繘琛岃繍绠椼傝屽湪涓涓繍绠楅噺涓や晶鐨勮繍绠楃浼樺厛绾х浉鍚屾椂锛屽垯鎸夎繍绠楃鐨勭粨鍚堟ф墍瑙勫畾鐨勭粨鍚堟柟鍚戝鐞嗐2銆乧璇█杩愮畻绗︿紭鍏堢骇浠庨珮鍒颁綆鐨勯『搴忎緷娆″涓嬶細浼樺厛绾т粠涓婂埌涓嬩緷娆¢掑噺锛屾渶涓婇潰鍏锋湁鏈楂...
  • c璇█浼樺厛绾ф槸浠涔?
    绛旓細绗4浼樺厛绾э細鍔犳硶杩愮畻绗︼紜銆佸噺娉曡繍绠楃锛銆傜5浼樺厛绾э細绉讳綅杩愮畻绗︼紲<銆侊紴>銆傜6浼樺厛绾э細澶т簬杩愮畻绗︼紴銆佸ぇ浜庣瓑浜庤繍绠楃锛=銆佸皬浜庤繍绠楃锛溿佸皬浜庣瓑浜庤繍绠楃锛=銆傜7浼樺厛绾э細绛変簬杩愮畻绗︼紳=銆佷笉绛変簬杩愮畻绗︼紒=銆傜8浼樺厛绾э細鎸変綅涓庤繍绠楃锛嗐傜9浼樺厛绾э細鎸変綅寮傛垨杩愮畻绗︼季銆傜10浼樺厛绾э細鎸変綅鎴栬繍绠楃...
  • C璇█鐨勮繍绠楃鐨浼樺厛绾ф槸浠涔?
    绛旓細閫昏緫涓&&浼樺厛绾澶т簬閫昏緫鎴東|銆8銆佺鍏骇锛氾紵 锛氫篃绉颁负鏉′欢杩愮畻绗鍙凤紝鏄C璇█涓鍞竴鐨勪竴涓笁鐩繍绠楃锛岀粨鍚堥『搴忔槸浠庡彸寰宸︺9銆佺涔濈骇锛=銆+=銆-+銆*=銆/=銆%= 杩欎簺杩愮畻绗︿篃鍙仛璧嬪艰繍绠楃锛岄櫎姝や箣澶栵紝>>=銆<<=銆&=銆乛=銆亅=杩欎簺璧嬪艰繍绠楃涔熷湪杩欎竴绾у埆鍐咃紝缁撳悎椤哄簭鏄粠鍙冲線宸︺&...
  • C璇█杩愮畻绗︾殑浼樺厛绾
    绛旓細浼樺厛绾э細C璇█涓紝杩愮畻绗︾殑杩愮畻浼樺厛绾у叡鍒嗕负15 绾с1 绾ф渶楂橈紝15 绾ф渶浣銆 鍦ㄨ〃杈惧紡涓紝浼樺厛绾ц緝楂樼殑鍏堜簬浼樺厛绾ц緝浣庣殑杩涜杩愮畻銆傝屽湪涓涓繍绠楅噺涓や晶鐨勮繍绠楃 浼樺厛绾х浉鍚屾椂锛屽垯鎸夎繍绠楃鐨勭粨鍚堟ф墍瑙勫畾鐨勭粨鍚堟柟鍚戝鐞嗐傜粨鍚堟э細C璇█涓悇杩愮畻绗︾殑缁撳悎鎬у垎涓轰袱绉嶏紝鍗冲乏缁撳悎鎬(鑷乏鑷冲彸)鍜屽彸缁撳悎...
  • c璇█涓殑杩愮畻绗︿紭鍏堢骇鎬庝箞鎺?
    绛旓細锛堝彇鍙嶃佸乏绉汇佹寜浣嶄笌銆佹寜浣嶅紓鎴栥佹寜浣嶆垨锛浼樺厛绾鐢遍珮鍒颁綆鐨勯『搴忔帓鍒椾负鍙栧弽 > 宸︾Щ > 鎸変綅涓 > 鎸変綅寮傛垨 > 鎸変綅鎴栥1銆侊綖锛氭剰鎬濇槸鎸変綅鍙栧弽锛岀被浼间簬闈烇紙锛侊級鐨勫叧绯伙紝鍙栧畠鐨勫弽闈2銆<<: 鎰忔濇槸宸︾Щ锛岀Щ鍔ㄤ簩杩涘埗鐨勪綅銆3銆& : 鎰忔濇槸鎸変綅涓庯紝绫讳技浜庝笌(&&)鐨勫叧绯伙紝涓鍋囦负鍋囥4銆...
  • C璇█杩愮畻绗︾殑浼樺厛绾ф槸濡備綍瑙勫畾鐨?
    绛旓細C璇█涓锛岃繍绠楃闄や簡甯歌鐨勪笁澶х被锛岀畻鏈繍绠楃銆佸叧绯昏繍绠楃涓庨昏緫杩愮畻绗︿箣澶栵紝杩樻湁涓浜涚敤浜庡畬鎴愮壒娈婁换鍔$殑杩愮畻绗︺傝繍绠楃鐨勮繍绠椾紭鍏堢骇鍏卞垎涓15 绾э紝1 绾ф渶楂橈紝15 绾ф渶浣庛 鍦ㄨ〃杈惧紡涓紝浼樺厛绾ц緝楂樼殑鍏堜簬浼樺厛绾ц緝浣庣殑杩涜杩愮畻銆傝屽湪涓涓繍绠楅噺涓や晶鐨勮繍绠楃 浼樺厛绾鐩稿悓鏃讹紝鍒欐寜杩愮畻绗︾殑缁撳悎鎬ф墍瑙勫畾...
  • C璇█閲岄潰鐨勮繍绠楃浼樺厛椤哄簭濡備綍?
    绛旓細C璇█涓锛岃繍绠楃鐨勮繍绠椾紭鍏堢骇鍏卞垎涓15 绾с1 绾ф渶楂橈紝15 绾ф渶浣庛 鍦ㄨ〃杈惧紡涓紝浼樺厛绾ц緝楂樼殑鍏堜簬浼樺厛绾ц緝浣庣殑杩涜杩愮畻銆傝屽湪涓涓繍绠楅噺涓や晶鐨勮繍绠楃 浼樺厛绾鐩稿悓鏃讹紝鍒欐寜杩愮畻绗︾殑缁撳悎鎬ф墍瑙勫畾鐨勭粨鍚堟柟鍚戝鐞嗐傚悇绛夌骇杩愮畻绗﹀涓嬶細(浠ヤ笅璇存槑涓紝瀵逛紶缁熺殑1绾у拰2绾у仛浜嗙粏鍖栵紝1鍜2瀵瑰簲浼犵粺1绾э紝3...
  • C璇█杩愮畻绗︿紭鍏堢骇椤哄簭
    绛旓細C璇█杩愮畻绗︿紭鍏堢骇椤哄簭濡備笅鎵绀猴細鑷杩愮畻绗 ++ 鍜岃嚜鍑忚繍绠楃 --锛屽湪浣滃悗缂杩愮畻绗︼紙濡傝〃杈惧紡 x++锛夋椂锛岃緝鍏剁敤浣滃墠缂杩愮畻绗︼紙濡傝〃杈惧紡 ++x锛夋椂锛屽叿鏈夎緝楂樼殑浼樺厛绾с+銆-銆* 鍜 & 杩愮畻绗﹁鍙蜂笉浣嗗彲浠ュ綋浣滀竴鍏冭繍绠楃锛坲nary operator锛屽彧闇瑕佷竴涓搷浣滄暟锛夛紝涔熷彲浠ュ綋浣滀簩鍏冭繍绠楃锛坆inary operator锛...
  • c璇█杩愮畻绗︾殑浼樺厛绾鏈夊摢浜?
    绛旓細閫楀彿杩愮畻绗鐨浼樺厛绾ф槸鎵鏈夎繍绠楃涓骇鍒渶浣庣殑锛岄氬父閰嶅悎 for 寰幆浣跨敤銆傞楀彿琛ㄨ揪寮忔渶鍙宠竟鐨勫瓙琛ㄨ揪寮忕殑鍊煎嵆涓洪楀彿琛ㄨ揪寮忕殑鍊笺備笂渚嬩腑锛宑++ 鐨勫硷紙c 鑷涔嬪墠鐨勫硷級鍗充负璇ヨ〃杈惧紡鐨勫笺傞楀彿杩愮畻绗︿繚璇佸乏杈圭殑瀛愯〃杈惧紡杩愮畻缁撴潫鍚庢墠杩涜鍙宠竟鐨勫瓙琛ㄨ揪寮鐨勮繍绠銆備篃灏辨槸璇达紝閫楀彿杩愮畻绗︽槸涓涓簭鍒楃偣锛屽叾宸﹁竟鎵鏈...
  • 扩展阅读:c语言优先级别表图片 ... c语言 和&&优先级比较 ... c++运算符优先级表 ... c语言中优先级顺序表 ... 运算符优先级由高到低 ... c语言中 和 有什么区别 ... 4种运算符优先级顺序 ... c语言符号意义大全 ... c语言运算符优先级顺序图 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网