找回密码
 注册
关于网站域名变更的通知
查看: 70|回复: 0
打印 上一主题 下一主题

c语言运算符号优先级别

[复制链接]
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
     楼主| 发表于 2024-9-12 18:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    1级优先级 左结合6 D9 x$ G% p8 O& S: s5 {8 @

    % N8 U) S3 n& L4 K2 _. H  ]( }9 T* f# `$ j2 F- C8 k( q
      l3 I. q1 V$ u9 H. L
    () 圆括号
    3 l! u! t4 V1 f$ _2 T  P: b( U7 e2 p7 p, r+ E6 a0 e3 ]" C
    : H5 }: y# `+ A: {  E  P4 E8 r' N
    & V8 o. j  g. k, H# r3 D4 J
    [] 下标运算符
    ) b! k% Q! I5 |4 V: J  x# ?
    ( p  i: R" E' k+ P5 p' b" H) N* V/ P5 k3 r6 R( ]

    % x/ O( i) B; E& ]; H3 u: G5 I7 b- D-> 指向结构体成员运算符
    : b! a1 n# X' n4 [7 _
    ( g1 X  x' f. v6 p: S2 g& o3 K, g% J6 }8 d% [; E9 R5 v/ s5 ~

    + ?1 ~# @5 M0 Z# \. 结构体成员运算符3 p+ X& k# H3 X; h* H% q/ l8 o
    0 k! g+ H1 E& G7 j/ C
    / s! v$ c  f1 u2 F, t

    8 q! p  h* x: K2级优先级 右结合4 C- |8 k% j8 k, \, k$ s) |  \

    / |/ D9 }4 R+ \2 y4 I# e* P* Z- E, g. K
    * I. u: Z1 p' K8 q( F' S
    ! 逻辑非运算符
    & \: K/ l0 h- Y  M1 H
    , d; m* b0 @9 q% \
    6 B5 s% g0 C7 \/ l4 Q
    + _: _) Y2 l0 d; R. e; ~~ 按位取反运算符
    - a2 w: q5 {& Q
    ) C9 P+ T8 c+ _" ]5 G
    " R* ~# t" U0 ?9 G- j( P
    , q& v1 M5 {3 n: d3 w" b: O' }9 o9 j++ 自增运算符# B# U4 \3 c2 y
    / w3 Q' w' e5 V9 d

    2 [1 a( g/ ?9 c& g( u% V: v6 H3 ]+ S* ~% m
    -- 自减运算符/ c6 }' w2 e$ L* T+ Z7 s. t+ K
      b$ |: D' N0 {) H

    # f4 h: L+ ]9 B; i( z# [# X0 W; H! V% u) m3 _
    - 负号运算符
    - f' b1 u: |0 t. G5 i% O. N( U5 @' ^& v( K  l$ k. `- ?
    5 G5 y! r: ^9 N/ O% T$ A

    1 q* n8 ~' C6 s/ E4 d(类型) 类型转换运算符
    " a6 I1 |! }' \
    9 C1 a. Z& p) ?" T4 k% H, N1 i, t% [4 h

    ) n1 k' C4 l& y+ y6 i/ H* 指针运算符# O1 Y) ?" h2 g& l) I

    4 g( R4 l8 F8 m0 E5 q" j  n5 m
    * _6 i: f, o' k' U8 F, B5 G$ j0 c- _6 W4 L& Q' Y8 y7 r% A
    & 地址与运算符7 \8 O# p$ i  n& k- o% q& Q4 ~
    / \2 L$ a/ H/ J& u( z
    ' }. G- p6 E3 R9 A! x5 I
    7 R! N0 S8 k4 H
    sizeof 长度运算符
    : C: h& n5 r# r# r9 v  \' e5 o8 G4 T, C7 S9 a6 K' g% l

    8 `( v1 Q/ s: \: {! A* ^- ~8 W% Z& W1 |( Z* p
    3级优先级 左结合
    - r- T' v, ?0 D
    0 m/ Q  p% X. H' x3 d( K7 A
    ( o4 A# G8 s" c" t) e
    8 `2 V) S1 D+ b+ I9 _1 n) d1 N* 乘法运算符
    9 s; G& W1 d" K3 B3 z* C& I+ D& D
    ' |7 y+ Q9 r- ?7 d/ p5 g
    2 j" ]6 E# O  b( j" f5 L) Z
    , K: D) w* T, a: \/ 除法运算符
    " n7 J! H( Q$ |9 p4 R  E! {+ A' }6 X$ S' M7 x/ J8 [) W

    0 |% _" B' H4 U$ q9 }, f0 Y' e0 d, Z4 v3 u; ~; D) y
    % 取余运算符
    $ U2 E. g" A% J- z; i
    8 U% n5 x' d: @+ X6 y5 Z* a5 ?% `+ t$ I- ~' r( \
    1 c5 m! R) J! c
    4级优先级 左结合
    $ i) l( A2 o# h) z
    - J& w7 \4 V" H* {8 R
      E9 m* }5 G% {+ a* b" a4 S6 ?! S; E6 b0 @
    + 加法运算符9 i$ y2 k, O2 ~- s0 E) [, g+ G! Q

      Y5 O- p! c. z1 }3 }9 S/ N6 u3 x( F* ^
    ! V# x% h+ C& d# a, R, A; s3 q
    - 减法运算符
    1 i; \% V3 e# c( d/ C8 w! o2 i; a, [
    . H8 L* O7 R$ Y- U" f' u5 X2 T, }3 o* z+ T. d

    0 k* p* w" m! L5 e% b6 L8 |5级优先级 左结合$ A. i5 k2 e+ N2 c

    6 P( c* f* `4 e- X5 x2 ]$ k4 [, ]- W& {; t4 ^

    & r. t, v$ P" ~- M4 L2 r<< 左移运算符
    5 M5 O" K$ J" P% }% e6 C5 h( ^6 Y/ h" P1 L, V

    6 j" |, d+ ^7 T# U- e( Z+ F
    , j+ K* u2 C9 P1 M1 D# P$ t>> 右移运算符  M1 `4 I8 A) E) F9 |7 |4 v+ @
    / d# e% Y7 s- \% }

    7 l- C! Z+ G' P8 h% y% r% Y5 x
    / `; c0 Q! X; C6 G6级优先级 左结合
    % b% T3 ^* T6 D( }
    8 ]2 p& J# W2 B7 K3 L; q
    - L. Z. k+ ^# }/ E) ]
    5 w( g+ B' x6 ?8 b
    ! _( o  y4 R, r& C0 b( n' g7 b( ~; p
    7级优先级 左结合% k  a6 f' Y% L* Z

    + A$ d- r( n% {/ t2 r2 s/ E3 X0 A7 N2 i
    ) b- d" R& ^+ M- B) ?! T
    == 等于运算符# ^  h% w* [3 b# v- R
    2 G& s5 _, T4 C6 S% s$ {4 F

    & r5 Y6 v! @  D. N( H# [* J$ G2 u6 @+ j2 Z/ K
    != 不等于运算符8 o% c+ h: D" E* B, H
    2 w; T1 a( z/ V& N- B( O+ o

    : z$ p6 [5 R# ?6 {/ V, S. B
    & F* d/ g: U4 X2 s$ T8级优先级 左结合
    . J$ x6 B5 O" G* ]2 m( `. N/ R
    2 F& y% Z/ Q- l5 N& y0 r( h) Z7 S, C/ X
    7 q/ N/ g4 V. s: x. M/ K; C
    & 按位与运算符
    $ w4 p5 P. c$ q- f' D/ C* h2 S7 X+ V" T1 ~: t
      A) T* ~5 G, v" Z) ?
    ! B2 ?2 J4 m) K  j9 d+ j5 ^3 j
    9级优先级 左结合# C* S  o) J$ R$ M; D3 y. G5 I/ k
    ' m, c3 F) F1 B! k8 ]/ D
    8 E1 e5 e# s( q$ \
    5 y& }, t6 `6 ~: a* V
    ^ 按位异或运算符
    6 u) Z# }5 d6 v$ V: Z" A" U
    # `# f+ A$ [2 O
    % h! r% P: A9 l2 N
    / x% j2 o  Y' f% V10级优先级 左结合! }7 E; [- g$ [5 d2 I, o
    . f; M% C: o. v" Z

    * `4 `; ]( {) q7 ^! o) I" q) V
    | 按位或运算符- C: m% p! C# C$ A) q! v# t
    - }% v" N7 O- ?: k+ c, h' I

    $ y9 l+ y9 P( |  c+ M' W+ l- d0 Z; H; }5 |
    11级优先级 左结合
    & `! `7 q) f6 n2 u# _6 @2 U& |
    ' n; b, R* X( F; @7 j% n# r0 T1 j
    ' j; a& ~" _  i0 D- j$ n
    0 h5 ?; a. Z8 t4 ^&& 逻辑与运算符
    7 C* i- y3 q& ?$ m( e) s; Q1 n6 ?; s3 D# L

    # e6 c, J6 S. @+ i; L
    2 H; ]3 u% A& }& U$ ~) v12级优先级 左结合' P8 ]" M" @" C! a

    ; a* U  H& t, T3 p. T$ w. q
    ' H3 U5 s7 h& p4 r- ~; G
    ' ~0 J( C) o0 w! _2 v% l" E8 a|| 逻辑或运算符
    1 O. @4 I, z- z' `9 r  y7 g; }: d# B- e5 P$ O" Z* [, F

    * F$ c  L3 u- o) b3 A  N% y& q. [7 x* G: n, c) ~
    13级优先级 右结合
    3 _8 M- ]$ h. _  U1 N5 G! E
    ( U9 _, X$ v2 f. h5 ]- X4 e$ G/ T) |( J& E3 [! y

    5 L# Q0 W# @1 p: y+ Z? : 条件运算符
    + w$ Z( Q( x5 N0 O2 h* f: }1 _0 y. M/ e/ b7 Q- {: S; o

    3 b) p$ D/ ~, K, {% P9 u  V" B+ q1 Z- j$ J8 c8 p6 t) i3 V
    14级优先级 右结合. }( u& s6 w  S2 C

    / l7 z, c/ f. P/ F; _# |0 ~3 [1 W, V: C  k) w  q8 M
    & f. S+ B. `( s3 @
    = += -= *= /= %= &= ^= |= <: k  h! R/ p0 d

    8 W) [. f: z: k# j5 Q( B  }7 d: i4 @* z5 U
    . S6 x/ G9 y0 y# V8 ~( y7 H
    15级优先级 左结合7 v* b4 O8 F$ Z1 Q7 M. u

    : {- q+ G8 T7 q8 n' z
    , D6 d. Q- V- H% r, n7 F4 A: {, x% }$ u* f8 n8 W- {
    , 逗号运算符
    0 m7 L& m! C7 O( J6 \" C
    0 {6 @* T7 Y8 {2 ]
    # `) _5 `% _- }% M. r& M3 d3 j
    ; Y5 h: F& U# L" n. V2 Y—————————————————————————————————————
    ) V' \) ~) l3 R! D# _8 u
    5 {  K' b1 w+ j: e8 y3 w  D4 y7 @. J7 \* H/ q

    ! A0 f: d- u0 b9 }3 W. R1 X' j优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
    2 u: w) f: R0 g' ^+ _, b* a3 z1 |9 e: z+ q* T
    , x, `- g  S) U3 ]/ X$ R
    ( Z0 O1 @, J! O0 S
    所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。/ n) g; C; q8 z
    / p. [% e1 q  v9 |' b" t

    $ A" w  [" {2 R' I+ N/ X" w1 G- B- {1 w' A% S
    具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而->及.是取结构成员。& L$ q' |2 ~0 s' A/ z- j4 U* [4 i

    2 E4 Z4 Q0 y6 v
    & I3 I0 i4 s+ n4 A
    & W% H; }) O" X7 o其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。, s2 W  @3 U! B/ {+ \

    . `  K# }# R9 @. }; ?
    * O% ~6 c7 ]% n  l6 E3 l* j+ f
    2 u! t( g3 t! B! o接下来是算术运算符,*、/、%的优先级当然比+、-高了。
    0 r2 K1 n7 u+ |( k
    0 P4 K9 N) ?/ ]  Z0 _/ `2 b% l/ {8 v/ c
    4 n1 @+ G( u9 P* ~* w9 f5 J3 z8 W
    移位运算符紧随其后。
    : U( Y& o2 E7 p# [' K* J
    " q9 E/ t' `: h: {9 b0 @3 J# a7 a$ M: W( x5 o6 f

    6 c: P4 f0 s; Z& |2 g1 \其次的关系运算符中,<5 n# A- }/ B0 P4 ?) g! M
    , Q" V3 z. b& ?
    ; Q' {; L% G$ C

    & u; Y! w2 y: e5 @1 H6 V5 K所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~); k7 f- r' j+ [  m4 _8 c- Q' \
    ( a$ L" Z- y$ `8 k
    + i% l7 F. v  ]+ A
    : g% g1 t9 r: P0 R( i/ h( E
    逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。
    4 n9 l* c# u% A
    & |7 r. v( c6 ?" `2 S  O
    9 P& Z7 P2 k: d* j$ i6 s& J* M: M) L+ J
    跟在其后的&&比||高。
    & r. C, k8 C& l) S* K1 F$ G& U4 t% g6 n2 S) W$ N

    0 n1 b6 i; c. M. S0 [/ ?& Y0 @
    ( k, Q4 m* O5 l/ `5 X& J5 n接下来的是条件运算符,赋值运算符及逗号运算符。
    ! @. W& b0 l0 J& w
    / S- D2 \6 N) [; ^
    ) R' m* J: M. j. \7 \! C0 B* {7 m9 X' T; E" E4 L) g1 U
    在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。
    0 L6 I7 \; L' I1 p7 g( k. W. B1 _
    # v* p2 Q/ Q* e& p6 c9 c* h1 N  r
    % ]4 _. i! s. c: @4 F& e) \4 F
    2 d9 ~# Q% k4 S: i7 t3 B8 ~! o: Z&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0 && b; &&运算符的左边位0,则右边表达式b就不再判断。# \+ o  A8 O# |( \% ]

    0 i2 {, K) K# f+ F7 {. q! b8 T& A- p- {# P8 D6 Y% s- p

    0 f; ?- g, m5 {在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。
    8 e2 T2 _8 t- Y, m0 v* {" Q6 I! n) y9 U2 H% {7 `( Z

    ( f$ H: U* V/ `, N9 O  L7 W, K& _" d( O9 ]9 \; [
    赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能
    : B! b1 e& N0 W4 e9 l# D+ W  e
    # ~: c* [" N9 \- M, Z
    $ i0 c$ i- b- N4 m1 i
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-9-24 05:20 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表