用算数运算符和括号将运算对象连接起来的且符合c++语法规则的式子叫作c++算术表达式,运算对象包括常量、变量和函数等
在c++中规定了运算符的优先性和结合性,在求解表达式时应该按照运算符的优先级别高低次序执行。例如乘除为第五级别高于第六级别的加减,所以先计算乘除再计算加减。
优先级简单理解:
算术运算符->关系运算符->&&和||->赋值运算符,优先级依次从高到低
优先级
-
第一级别
作用域限定符 ::(不可重载) -
第二级别
函数调用,成员初始化,指针型或者对象型成员调用,自增或者自减,static或者const等 -
第三级别
预自增(自减)(++i),逻辑取反(!),正负号,指针取值(*),值取指针(&),动态数组内存分配(new),动态析构元素内存(delete),强制类型转换,返回类型内存(sizeof)等 -
第四级别
类指针成员引用(->*),类对象成员引用,例,obj.*var = 24; -
第五级别
乘,除以及取余 -
第六级别
加减法 -
第七级别
位左移<<,位右移 -
第八级别
小于,小于等于,大于以及大于等于 -
第九级别
恒等于和不等于 -
第十级别
位与运算& -
第十一级别
位异或运算^ -
第十二级别
位或运算| -
第十三级别
逻辑与运算&& -
第十四级别
逻辑或运算|| -
第十五级别
条件运算符?:(右结合性) -
第十六级别
各种赋值运算 -
第十七级别
异常抛出,例,throw EClass(“Message”); -
第十八级别
逗号分隔符 -
结合性
整个逗号运算符表达式的值是以逗号分隔的列表中的最后一个表达式的值