当前位置:首页 > 科技 > 正文

c语言优先级排序表 C语言里面的运算符优先顺序如何?

C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。

文章目录:

  1. C语言里面的运算符优先顺序如何?
  2. C语言运算符优先级顺序
  3. c语言运算符优先级从高到低的顺序依次为?

一、C语言里面的运算符优先顺序如何?

附录有的啊

C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。

各等级运算符如下:

(以下说明中,对传统的1级和2级做了细化,1和2对应传统1级,3和4对应传统2级,所以细化说明共有17级。)

1、基本表达式 1级

基本表达式(Primary expressions),主要是用于运算符之间,做为运算数。

标识,常量,字符串文字量,优先级提升表达式最优先执行。

优先级提升表达式是指圆括号包围的表达式,如“( expression )”

2、后缀表达式 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、单目/一元运算 3级

++ unary-expression 前缀自增

-- unary-expression 前缀自减

unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 * , 正号+ ,负号- 位反~ 逻辑否!。

sizeof unary-expression 求类型长度,对表达式求类型长度

sizeof ( type-name ) 求类型长度

4、强制类型表达式 4级

( type-name ) cast-expression,强制表达式成为type-name指定的类型。

5、乘法表达式 5级

“ * ” 乘法运算符;“ / ”除法运算符;“ % ” 取余运算符。

6、加法运算符 6级

“ + ”加法运算符;“ - ”减法运算符。

7、移位运算符 7级

<< 左移森念运算符;>> 右移运算符。

8、关系运算符 8级

<、<=、>、>=关系运算符。

9、相等运算符 9级此银困

“ == ”等于运算符;“ != ”不等于运算符。

10、位与运算符 10级

“ & ”按位与运算符

11、位异或运算符 11级

“ ∧ ”按位异或运搏备算符(Bitwise exclusive OR operator)。

12、位或运算符 12 级

“ | ”按位或运算符(Bitwise inclusive OR operator)。

13、逻辑与运算符 13级

“&&”逻辑与运算符。

14、逻辑或运算符 14 级

“ || ”逻辑或运算符。

15、三元条件运算符 15级

? :条件运算符。

16、赋值运算符 16 级

=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。

17、逗号运算符 17级

“,”逗号运算符。

具体可参见下图:

二、C语言运算符优先级顺序

c语言运算符优先级从高到低的顺序依次如下:优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具肆纯有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。

一级运迹雹游算符:标识,常量,字符串文字量,优先级提升表达式最优先执行。

C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高姿销的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。

三、c语言运算符优先级从高到低的顺序依次为?

一共有十五个优先级:

1 () [] . ->

2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强碰祥制类型) sizeof

3 * / %

4 + -

5 >> <<橡并

6 > >= < <=

7 == !=

8 &

9 ^

10 |

11 &&

12 ||

13 ?:

14 = += -= *= /= %= |= ^= &= >>= <笑如搏<=

15 ,

就着多吧 结合性:2 13 14 是从右至左 其他都是 从左至右

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

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、逗号运算符。左结合。

以上是问答百科为你整理的3条关于c语言优先级的问题,希望对你有帮助!更多相关c语言优先级的内容请站内查找。