c++符号优先级以及理解方法(很不错)-----转自leukotrichia的博客
来源:互联网 发布:淘宝店等级怎么看 编辑:程序博客网 时间:2024/05/07 20:43
C++操作符的优先级
操作符及其结合性
功能
用法
LL
L::
::
::全局作用域
类作用域
名字空间作用域::name
class::name
namespace::nameL
L
L
L
L
.
->
[]
()
()
成员选择
成员选择
下标
函数调用
类型构造
object.member
pointer->member
variable[expr]
name(expr_list)
type(expr_list)R
R
R
R
R
++
--
typeid
typeid
显示强制类型转换
后自增操作
后自减操作
类型ID
运行时类型ID
类型转换
lvalue++
lvalue--
typeid(type)
typeid(expr)
cast_name<type>(expr)R
R
R
R
R
R
R
R
R
R
R
R
R
Rsizeof
sizeof
++
--
~
!
-
+
*
&
()
new
delete
delete[]对象的大小
类型的大小
前自增操作
前自减操作
位求反
逻辑非
一元负号
一元正号
解引用
取地址
类型转换
创建对象
释放对象
释放数组sizeof expr
sizeof(type)
++lvalue
--lvalue
~expr
!expr
-expr
+expr
*expr
&expr
(type)expr
new type
delete expr
delete []exprL
L->*
.*指向成员操作的指针
指向成员操作的指针ptr->*ptr_to_member
obj.*ptr_to_memberL
L
L*
/
%乘法
除法
求模(求余)expr * expr
expr / expr
expr % exprL
L+
-加法
减法expr + expr
expr - exprL
L<<
>>位左移
位右移expr << expr
expr >> exprL
L
L
L<
<=
>
>=小于
小于或等于
大于
大于或等于expr < expr
expr <= expr
expr > expr
expr >= exprL
R==
!=相等
不等Expr == expr
Expr != exprR&位与Expr & exprR^位异或Expr ^ exprR|位或Expr | exprR&&逻辑与Expr && exprR||逻辑或Expr || exprR?:条件操作Expr ? expr:exprR
R
R
R
R=
*=,/=,%=
+=,-=
<<=,>>=
&=,|=,^=赋值操作
复合赋值操作
Lvalue= expr
Lvalue+= expr
……
Rthrow抛出异常Throw exprL,逗号Expr, expr
记忆方法:
--摘自《C语言程序设计实用问答》
问题:如何记住运算符的15种优先级和结合性?
解答:C语言中运算符种类比较繁多,优先级有15种,结合性有两种。
如何记忆两种结合性和15种优先级?下面讲述一种记忆方法。
结合性有两种,一种是自左至右,另一种是自右至左,大部分运算符的结合性是自左至右,只有单目运算符、三目运算符的赋值运算符的结合性自右至左。
优先级有15种。记忆方法如下:
记住一个最高的:构造类型的元素或成员以及小括号。
记住一个最低的:逗号运算符。
剩余的是一、二、三、赋值。
意思是单目、双目、三目和赋值运算符。
在诸多运算符中,又分为:
算术、关系、逻辑。
两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。再细分如下:
算术运算符分 *,/,%高于+,-。
关系运算符中,〉,〉=,<,<=高于==,!=。
逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。
逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。
这样就将15种优先级都记住了,再将记忆方法总结如下:
去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。
问题:如何记住运算符的15种优先级和结合性?
解答:C语言中运算符种类比较繁多,优先级有15种,结合性有两种。
如何记忆两种结合性和15种优先级?下面讲述一种记忆方法。
结合性有两种,一种是自左至右,另一种是自右至左,大部分运算符的结合性是自左至右,只有单目运算符、三目运算符的赋值运算符的结合性自右至左。
优先级有15种。记忆方法如下:
记住一个最高的:构造类型的元素或成员以及小括号。
记住一个最低的:逗号运算符。
剩余的是一、二、三、赋值。
意思是单目、双目、三目和赋值运算符。
在诸多运算符中,又分为:
算术、关系、逻辑。
两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。再细分如下:
算术运算符分 *,/,%高于+,-。
关系运算符中,〉,〉=,<,<=高于==,!=。
逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。
逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。
这样就将15种优先级都记住了,再将记忆方法总结如下:
去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。
0 0
- c++符号优先级以及理解方法(很不错)-----转自leukotrichia的博客
- c语言操作符优先级(转自博客园)
- 浅谈C语言的优先级、符号以及嵌套问题
- 关于c语言中各符号的意义,以及优先级。
- 很不错的博客
- 很不错的博客
- 很不错的博客
- 网络爬虫基本原理(文章转自博客园:wawlian博客,文章很不错,转了一起学习)
- 很不错的技术博客
- 很不错的概念性理解
- 抢占优先级和相应优先级以及优先级分组的理解
- C语言中符号的优先级-摘录
- c语言中 符号的优先级
- C/C++操作符号的优先级
- [符号优先级]C中的符号优先级事项
- MATLAB调用C/C++函数的方法[转自汪自军博客]
- C语言符号优先级
- C语言符号优先级
- 什么是scatter / gather
- cocos2d-x lua 注释提示
- 第九周项目四:星星图案二
- 找素数
- runtime浅谈(二)概念与补充
- c++符号优先级以及理解方法(很不错)-----转自leukotrichia的博客
- JAXB 操作XML 与 Object
- Python 命令行解析工具 Argparse介绍(二)
- mysql 数据库恢复
- Linux下C高手成长过程----经典书籍推荐
- C语言数组基础知识
- JAVA STRING 小知识
- C# 对象数据转换Json帮助类 JsonHelp
- Ubuntu下Rails的安装