C语言中30多个运算符的优先级顺序

比如算术运算符(+-*/)的优先级大于关系运算符(<,<=,!=,==等等)大于逻辑运算符(!,&&,||)

要有资料可寻,不要想当然的答案

32多个运算符的优先级顺序如下

1、auto    

声明自动变量    

2、short    

声明短整型变量或函数    

3、int    

声明整型变量或函数    

4、long    

声明长整型变量或函数    

5、float   

 声明浮点型变量或函数    

6、double   

 声明双精度变量或函数    

7、char  

  声明字符型变量或函数    

8、struct   

 声明结构体变量或函数    

9、union    

声明共用数据类型    

10、enum   

 声明枚举类型    

11、typedef   

 用以给数据类型取别名    

12、const    

声明只读变量    

13、unsigned  

声明无符号类型变量或函数    

14、signed   

 声明有符号类型变量或函数    

15、extern   

 声明变量是在其他文件正声明    

16、register  

 声明寄存器变量    

17、static  

声明静态变量    

18、volatile    

说明变量在程序执行中可被隐含地改变    

19、void    

声明函数无返回值或无参数,声明无类型指针    

20、if   

 条件语句    

21、else    

条件语句否定分支(与 if 连用)    

22、switch   

用于开关语句    

23、case   

开关语句分支    

24、for    

一种循环语句    

25、do 

循环语句的循环体    

26、while  

循环语句的循环条件    

27、goto

无条件跳转语句    

28、continue  

结束当前循环,开始下一轮循环    

29、break   

跳出当前循环    

30、default    

开关语句中的“其他”分支    

31、sizeof    

计算数据类型长度    

32、return    

子程序返回语句(可以带参数,也可不带参数)循环条件    

扩展资料

1、==和!=优先级相等,其他四个关系运算符的优先级相等,且前者的优先级低于后者。

如2==3>1 应该先计算3>1。

2、关系运算符中,若优先级相同,则“从左往右”结合。

如4>3<2,先计算4>3

3、关系运算符中的优先级小于算术运算符。

如3+4>8-2 相当于(3+4)> (8-2)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-25

优先级高到低:

第一级:圆括号“()”、下标运算符“[]”、分量运算符的指向结构体成员运算符“->”、结构体成员运算符“.”

第二级:逻辑非运算符“!”、按位取反运算符“~”、自增自减运算符“++ --”、负号运算符“-”、类型转换运算符“(类型)”、指针运算符和取地址运算符“*和&”、长度运算符“sizeof”

第三级:乘法运算符“*”、除法运算符“/”、取余运算符“%”

第四级:加法运算符“+”、减法运算符“-”

第五级:左移动运算符“<<”、右移动运算符“>>”

第六级:关系运算符“< > <= >= ”

第七级:等于运算符“==”、不等于运算符“!=”

第八级:按位与运算符“&”

第九级:按位异或运算符“^”

第十级:按位或运算符“|”

第十一级:逻辑与运算符“&&”

第十二级:逻辑或运算符“||”

第十三级:条件运算符“?:”

第十四级:赋值运算符“= += -= *= /= %= >>= <<.= &= |= ^=”

第十五级:逗号运算符“,”

扩展资料:

相关规定:

1、优先级与求值顺序无关。如a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。

2、优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

3、相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

4、基本的优先级:指针最优,单目运算优于双目运算。如正负号。先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7。逻辑运算最后结合。

参考资料来源:

本回答被网友采纳
第2个回答  推荐于2017-11-26
c语言运算符号
1级优先级 左结合
() 圆括号
[] 下标运算符
-> 指向结构体成员运算符
. 结构体成员运算符
2级优先级 右结合
! 逻辑非运算符
~ 按位取反运算符
++ 自增运算符
-- 自减运算符
- 负号运算符
(类型) 类型转换运算符
* 指针运算符
& 地址与运算符
sizeof 长度运算符
3级优先级 左结合
* 乘法运算符
/ 除法运算符
% 取余运算符
4级优先级 左结合
+ 加法运算符
- 减法运算符
5级优先级 左结合
<< 左移运算符
>> 右移运算符
6级优先级 左结合
<、<=、>、>= 关系运算符
7级优先级 左结合
== 等于运算符
!= 不等于运算符
8级优先级 左结合
& 按位与运算符
9级优先级 左结合
^ 按位异或运算符
10级优先级 左结合
| 按位或运算符
11级优先级 左结合
&& 逻辑与运算符
12级优先级 左结合
|| 逻辑或运算符
13级优先级 右结合
? : 条件运算符
14级优先级 右结合
= += -= *= /= %= &= ^= |= <<= >>= 全为赋值运算符
15级优先级 左结合
, 逗号运算符本回答被提问者采纳
第3个回答  推荐于2018-03-30

C语言中运算符优先级如下图,优先级数字越小的优先级越高。

本回答被网友采纳
第4个回答  2008-10-19
优先级:自上到下由高到低
|(){}〔〕.(结构体成员运算符)->(指向结构体成员运算符)
|单目运算符 !(非)--(自减)++(自加)~(按位取反)
|算术运算符+ - * % /
|关系运算符< > >= <= ==
|&&和||
|赋值运算符 =
|逗号运算符 (表达式1),(表达式2),(表达式3)...
还有就是左右运算顺序
a+b +为双目运算符, (a>b)?a:b 中? :为3目运算符. !a 为单目运算符.
单目,三目运算符都为自右向左结合,双目运算符除赋值运算符都为自左向右结合.

参考资料:

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网