c语言运算符的优先级有哪些?

“ | ”按位或运算符,优先级12级,如0x01 | 0xf0运算结果为0xf1。

“ || ”逻辑或运算符,也可以称之为条件或,优先级14级,如0x01 || 0xf0运算结果为True。
“ == ”等于运算符;“ != ”不等于运算符。优先级9级。
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。优先级16级。

C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。[1]
相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。
而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)
合理使用优先级可以极大简化表达式。
基本表达式 1级
基本表达式(Primary expressions),主要是用于运算符之间,做为运算数。
标识,常量,字符串文字量,优先级提升表达式最优先执行。
优先级提升表达式是指圆括号包围的表达式,如“( expression )”
后缀表达式 2极
postfix-expression [ expression ],数组下标运算。
postfix-expression ( argument-expression-list),函数调用,括号内的参数可选。
postfix-expression . identifier,成员访问,
postfix-expression -> identifier,成员访问,->号之前应为指针。
postfix-expression ++,后缀自增
postfix-expression --,后缀自减
( type-name ) { initializer-list }
( type-name ) { initializer-list , } 复合初始化,C99后新增。

单目/一元运算 3级
++ unary-expression 前缀自增
-- unary-expression 前缀自减
unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 * , 正号+ ,负号- 位反~ 逻辑否!。
sizeof unary-expression 求类型长度,对表达式求类型长度
sizeof ( type-name ) 求类型长度
强制类型表达式 4级
( type-name ) cast-expression,强制表达式成为type-name指定的类型。
乘法表达式 5级
“ * ” 乘法运算符;“ / ”除法运算符;“ % ” 取余运算符。
加法运算符 6级
“ + ”加法运算符;“ - ”减法运算符。
移位运算符 7级
<< 左移运算符;>> 右移运算符。
关系运算符 8级
<、<=、>、>=关系运算符。
相等运算符 9级
“ == ”等于运算符;“ != ”不等于运算符。
位与运算符 10级
“ & ”按位与运算符
位异或运算符 11级
“ ∧ ”按位异或运算符(Bitwise exclusive OR operator)。
位或运算符 12 级
“ | ”按位或运算符(Bitwise inclusive OR operator)。
  
逻辑与运算符 13级
“&&”逻辑与运算符。
逻辑或运算符 14 级
“ || ”逻辑或运算符。
三元条件运算符 15级
? :条件运算符。
赋值运算符 16 级
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。
逗号运算符 17级
“,”逗号运算符。
[pre]C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:
  子表达式1, 子表达式2, ..., 子表达式n
  例如:
  a + b, c = b, c++
  逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。
  逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。

  • c璇█杩愮畻绗︾殑浼樺厛绾ф湁鍝簺?
    绛旓細鈥滐紝鈥濋楀彿杩愮畻绗︺俒pre]C 璇█涓紝閫楀彿锛,锛変篃鍙互鏄繍绠楃锛岀О涓洪楀彿杩愮畻绗︼紙Comma Operator锛夈傞楀彿杩愮畻绗﹀彲浠ユ妸涓や釜浠ヤ笂锛堝寘鍚袱涓級鐨勮〃杈惧紡杩炴帴鎴愪竴涓〃杈惧紡锛岀О涓洪楀彿琛ㄨ揪寮忋傚叾涓鑸舰寮忎负锛氬瓙琛ㄨ揪寮1, 瀛愯〃杈惧紡2, ..., 瀛愯〃杈惧紡n 渚嬪锛歛 + b, c = b, c++ 閫楀彿杩愮畻绗︾殑浼樺厛绾ф槸鎵鏈...
  • c璇█涓殑杩愮畻绗︿紭鍏堢骇鎬庝箞鎺?
    绛旓細锛堝彇鍙嶃佸乏绉汇佹寜浣嶄笌銆佹寜浣嶅紓鎴栥佹寜浣嶆垨锛浼樺厛绾鐢遍珮鍒颁綆鐨勯『搴忔帓鍒椾负鍙栧弽 > 宸︾Щ > 鎸変綅涓 > 鎸変綅寮傛垨 > 鎸変綅鎴栥1銆侊綖锛氭剰鎬濇槸鎸変綅鍙栧弽锛岀被浼间簬闈烇紙锛侊級鐨勫叧绯伙紝鍙栧畠鐨勫弽闈2銆<<: 鎰忔濇槸宸︾Щ锛岀Щ鍔ㄤ簩杩涘埗鐨勪綅銆3銆& : 鎰忔濇槸鎸変綅涓庯紝绫讳技浜庝笌(&&)鐨勫叧绯伙紝涓鍋囦负鍋囥4銆...
  • c璇█涓繍绠楃浼樺厛绾ф湁鍝簺?
    绛旓細include <stdio.h> void main(){ int a,b,c;printf("璇疯緭鍏鍜宐鐨勫:");scanf("%d %d", &a, &b);c = a * b;printf("a*b = %d\n",c);}
  • c璇█杩愮畻绗︾殑浼樺厛绾椤哄簭
    绛旓細c璇█杩愮畻绗浼樺厛绾т粠楂樺埌浣庣殑椤哄簭渚濇濡備笅锛氫紭鍏堢骇浠庝笂鍒颁笅渚濇閫掑噺锛屾渶涓婇潰鍏锋湁鏈楂樼殑浼樺厛绾э紝閫楀彿鎿嶄綔绗﹀叿鏈鏈浣庣殑浼樺厛绾с傝〃杈惧紡鐨勭粨鍚堟搴忓彇鍐充簬琛ㄨ揪寮忎腑鍚勭杩愮畻绗︾殑浼樺厛绾銆備紭鍏堢骇楂樼殑杩愮畻绗﹀厛缁撳悎锛屼紭鍏堢骇浣庣殑杩愮畻绗﹀悗缁撳悎锛屽悓涓琛屼腑鐨勮繍绠楃鐨勪紭鍏堢骇鐩稿悓銆備笉鍚岀被鍨嬬殑杩愮畻绗︿箣闂翠篃鏈夌浉搴旂殑浼樺厛绾...
  • C璇█閲岄潰鐨杩愮畻绗︿紭鍏椤哄簭濡備綍?
    绛旓細C璇█涓紝杩愮畻绗︾殑杩愮畻浼樺厛绾鍏卞垎涓15 绾с1 绾ф渶楂橈紝15 绾ф渶浣庛 鍦ㄨ〃杈惧紡涓紝浼樺厛绾ц緝楂樼殑鍏堜簬浼樺厛绾ц緝浣庣殑杩涜杩愮畻銆傝屽湪涓涓繍绠楅噺涓や晶鐨勮繍绠楃 浼樺厛绾х浉鍚屾椂锛屽垯鎸夎繍绠楃鐨勭粨鍚堟ф墍瑙勫畾鐨勭粨鍚堟柟鍚戝鐞嗐傚悇绛夌骇杩愮畻绗﹀涓嬶細(浠ヤ笅璇存槑涓紝瀵逛紶缁熺殑1绾у拰2绾у仛浜嗙粏鍖栵紝1鍜2瀵瑰簲浼犵粺1绾э紝3...
  • c璇█涓繍绠楃鐨勪紭鍏椤哄簭鏄庢牱鐨?
    绛旓細C璇█涓鐨勯昏緫杩愮畻绗︼細&&锛堜笌杩愮畻锛夈亅|锛堟垨杩愮畻锛夈!锛堥潪杩愮畻锛夈備笌杩愮畻绗(&&)鍜屾垨杩愮畻绗(||)鍧囦负鍙岀洰杩愮畻绗︺傚叿鏈夊乏缁撳悎鎬с傞潪杩愮畻绗(!)涓哄崟鐩繍绠楃锛屽叿鏈夊彸缁撳悎鎬с傞昏緫杩愮畻绗﹀拰鍏跺畠杩愮畻绗︿紭鍏堢骇鐨勫叧绯诲彲琛ㄧず濡備笅锛氭湰鏉ユ病鏈夐敊璇紝鍏崇郴杩愮畻绗﹂兘鏄寜鈥滈潪涓庢垨鈥濋『搴忔潵杩愮畻鐨勩備絾鏄紝涓嶅悓鐨...
  • C璇█涓殑杩愮畻绗︿紭鍏堢骇鏄鎬庝箞鏍鐨?
    绛旓細1 銆佹爣璇嗙銆佸父閲忋佸瓧绗︿覆鍜岀敤()鎷彿濂楄捣鏉ョ殑琛ㄨ揪寮忔槸缁勬垚琛ㄨ揪寮忕殑鏈鍩烘湰鍗曞厓锛屽湪杩愮畻涓仛 鎿嶄綔鏁帮紝浼樺厛绾鏈楂樸2銆佸悗缂杩愮畻绗锛屽寘鎷暟缁勫彇涓嬫爣[]銆佸嚱鏁拌皟鐢()銆佺粨鏋勪綋鍙栨垚鍛.銆佹寚鍚戠粨鏋勪綋鐨勬寚閽堝彇鎴愬憳- >銆佸悗缂鑷++銆佸悗缂鑷噺--銆傚鏋滀竴涓搷浣滄暟鍚庨潰鏈夊涓悗缂锛屾寜鐓х鎿嶄綔鏁颁粠杩戝埌杩滅殑椤哄簭 ...
  • 杩愮畻绗浼樺厛绾鐨勪紭鍏堢骇椤哄簭琛鏈夊摢浜?
    绛旓細浼樺厛绾т粠涓婂埌涓嬩緷娆¢掑噺锛屾渶涓婇潰鍏锋湁鏈楂樼殑浼樺厛绾э紝閫楀彿鎿嶄綔绗﹀叿鏈鏈浣庣殑浼樺厛绾с傝〃杈惧紡鐨勭粨鍚堟搴忓彇鍐充簬琛ㄨ揪寮忎腑鍚勭杩愮畻绗︾殑浼樺厛绾銆備紭鍏堢骇楂樼殑杩愮畻绗﹀厛缁撳悎锛屼紭鍏堢骇浣庣殑杩愮畻绗﹀悗缁撳悎锛屽悓涓琛屼腑鐨勮繍绠楃鐨勪紭鍏堢骇鐩稿悓銆C璇█涓 杩愮畻绗﹂櫎浜嗗父瑙佺殑涓夊ぇ绫伙紝绠楁湳杩愮畻绗︺佸叧绯昏繍绠楃涓庨昏緫杩愮畻绗︿箣澶栵紝杩樻湁...
  • 姹c璇█涓鍏崇郴杩愮畻绗,閫昏緫杩愮畻绗︾瓑绛夊悇绉杩愮畻绗︾殑浼樺厛绾!
    绛旓細c璇█杩愮畻绗鍙 1绾浼樺厛绾 宸︾粨鍚 () 鍦嗘嫭鍙 [] 涓嬫爣杩愮畻绗 -> 鎸囧悜缁撴瀯浣撴垚鍛樿繍绠楃 . 缁撴瀯浣撴垚鍛樿繍绠楃 2绾т紭鍏堢骇 鍙崇粨鍚 ! 閫昏緫闈炶繍绠楃 ~ 鎸変綅鍙栧弽杩愮畻绗 ++ 鑷杩愮畻绗 -- 鑷噺杩愮畻绗 - 璐熷彿杩愮畻绗 (绫诲瀷) 绫诲瀷杞崲杩愮畻绗 鎸囬拡杩愮畻绗 & 鍦板潃涓庤繍绠楃 sizeof 闀垮害杩愮畻绗 3绾т紭...
  • c璇█浼樺厛绾ф槸浠涔?
    绛旓細浼樺厛绾х粨鍚堟э細褰撲竴涓繍绠楀璞′袱渚х殑杩愮畻绗浼樺厛绾у埆鐩稿悓鏃讹紝鍒欐寜杩愮畻绗︾殑缁撳悎鎬ф潵纭畾琛ㄨ揪寮忕殑杩愮畻椤哄簭銆傚叧浜庣粨鍚堟х殑姒傚康鍦ㄥ叾浠栭珮绾璇█涓槸娌℃湁鐨勶紝杩鏄疌璇█鐨勭壒鐐逛箣涓銆傚湪鏍囧噯C璇█鐨勬枃妗i噷锛屽鎿嶄綔绗︾殑缁撳悎鎬у苟娌℃湁鍋氬嚭闈炲父娓呮鐨勮В閲娿侰璇█涔熷皢34绉嶈繍绠楃瑙勫畾浜嗕笉鍚岀殑缁撳悎鎬с傚ぇ澶氭暟杩愮畻绗︾粨鍚...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网