C/C++运算符指导原则
来源:互联网 发布:塔布数据 编辑:程序博客网 时间:2024/06/07 12:27
本来觉得自己不会被运算符优先级问题困扰(实际自己写程序时也确实如此),但无奈有些地就考你这个,看了几篇大牛的博客,精简的总结如下三条指导原则:
1.优先级表(起码有个大概)
2.大多数运算符结合方向是“自左至右”, 即: 先左后右, 例如a- b+c, b 两侧有- 和+两种运算符的优先级相同, 按先左后右结合方向, b 先与减号结合, 执行a- b 的运算, 再执行加c 的运算。
除了自左至右的结合性外, C 语言有三类运算符参与运算的结合方向是从右至左。即: 单目运算符, 条件运算符, 以及赋值运算符。
3.自己写时,加括号(这个最实用了吧)
运算符优先级表:
优先级
运算符
名称或含义
使用形式
结合方向
说明
1
[]
数组下标
数组名[常量表达式]
左到右
--
()
圆括号
(表达式)/函数名(形参表)
--
.
成员选择(对象)
对象.成员名
--
-<
成员选择(指针)
对象指针-<成员名
--
2
-
负号运算符
-表达式
右到左
单目运算符
~
按位取反运算符
~表达式
++
自增运算符
++变量名/变量名++
--
自减运算符
--变量名/变量名--
*
取值运算符
*指针变量
&
取地址运算符
&变量名
!
逻辑非运算符
!表达式
(类型)
强制类型转换
(数据类型)表达式
--
sizeof
长度运算符
sizeof(表达式)
--
3
/
除
表达式/表达式
左到右
双目运算符
*
乘
表达式*表达式
%
余数(取模)
整型表达式%整型表达式
4
+
加
表达式+表达式
左到右
双目运算符
-
减
表达式-表达式
5
< span>
左移
变量< p>
左到右
双目运算符
<<
右移
变量<<表达式
6
<
大于
表达式<表达式
左到右
双目运算符
<=
大于等于
表达式<=表达式
< span>
小于
表达式< p>
< span>
小于等于
表达式< p>
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
8
&
按位与
表达式&表达式
左到右
双目运算符
9
^
按位异或
表达式^表达式
左到右
双目运算符
10
|
按位或
表达式|表达式
左到右
双目运算符
11
&&
逻辑与
表达式&&表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
13
?:
条件运算符
表达式1?
表达式2: 表达式3
右到左
三目运算符
14
=
赋值运算符
变量=表达式
右到左
--
/=
除后赋值
变量/=表达式
--
*=
乘后赋值
变量*=表达式
--
%=
取模后赋值
变量%=表达式
--
+=
加后赋值
变量+=表达式
--
-=
减后赋值
变量-=表达式
--
< span>
左移后赋值
变量< p>
--
<<=
右移后赋值
变量<<=表达式
--
&=
按位与后赋值
变量&=表达式
--
^=
按位异或后赋值
变量^=表达式
--
|=
按位或后赋值
变量|=表达式
--
15
,
逗号运算符
表达式,表达式,…
左到右
--
说明:
运算符共分为15级,1级优先级最高,15级优先级最低。
同一优先级的运算符,运算次序由结合方向所决定。(结合性:2 13 14 是从右至左 其他都是从左至右)
简单记就是:! < 算术运算符 < 关系运算符< && < || < 赋值运算符
- C/C++运算符指导原则
- 【C/C++】运算符问题
- 【c/c++】运算符优先级
- C/C++,运算符重载
- C/C++:sizeof运算符
- C语言运算符运算
- Unix c 入门指导
- C语言学习指导
- C 语言入门指导
- C语言运算中的数据类型自动转换原则
- C语言运算中的数据类型自动转换原则
- C语言运算中的数据类型自动转换原则
- C语言运算中的数据类型自动转换原则
- C语言运算中的数据类型自动转换原则
- c语言运算过程中的类型自动转换原则
- C语言运算中的数据类型自动转换原则
- C语言运算符
- c 运算符 优先级
- 如果,这些话你能看懂、看明白,那么,你会从中得到很多…很多…
- Fragment 练习1
- dup and dup2的剖析
- SQL Server 2008中的hierarchyid
- 让你少奋斗10年的工作经验
- C/C++运算符指导原则
- 修心养性最美妙的九大疗法,超有用!
- VC 中设置程序 开机自动启动和取消自动启动
- 黑马程序员 -- Java基础学习(9)
- 生命中总有一些事情无法等待 你读懂了多少?
- 文件操作
- 有些心情写给自己,也只能写给自己
- Tomcat引起的中文乱码问题
- Linux下通过OTG把板卡上的一个磁盘或文件映射成PC机上的一个移动磁盘