8其他运算
(1)条件运算符
条件运算是C+ +中唯一的三目运算,与其对应的运算符?:称为条件运算符。条件运算符的使用格式为:
<表达式1>?<表达式2>:<表达式3>
当计算有条件运算符构成的表达式时,首先计算<表达式1>,若其值非0,则计算出<表达式2>的值,并用这个值作为整个表达式的值;若<表达式1>的值为0,则计算出<表达式3>的值,并用这个值作为整个表达式的值。
(2)逗号运算符
C+ +中使用逗号运算符指明对多个表达式进行顺序求值。逗号运算符的使用格式为:
<表达式1>,<表达式2>,……<表达式n>
其中,每个逗号都称为逗号运算符,整个式子称为逗号表达式。上述逗号表达式的求值步骤为:从左向右依次计算<表达式1>、<表达式2>…<表达式n>的值;将<表达式n>(即最右端的表达式)的值作为整个逗号表达式的值。
(3)sizeof运算符
使用运算符sizeof可以进行字长提取操作,因此sizeof运算符又称为字长提取符,它的使用格式为:
sizeof(<运算分量>)
其中,sizeof为关键字;<运算分量>既可以是一个类型名,也可以是一个表达式,当作为<运算分量>的表达式只包含一个变量名时,圆括号()可以省略。
字长提取运算的结果为一个整数,该整数表示指定的类型或变量的字节长度,即在内存中占用的字节(Byte)数。
(4)圆括号运算符
C+ +中不仅将圆括号()归为运算符,而且根据不同的使用方式,可以对圆括号运算符的功能作出以下3种不同的解释:
①圆括号用于函数调用。其格式为:
<函数名>(<实参表>)
②圆括号用于强制类型转换。其格式为:
(<类型名>)<表达式>
③圆括号用于类型构造。其格式为:
<类型名>(<表达式>)
类型构造是指使用圆括号中<表达式>的值来构造一个具有目标数据类型的值,要构造的目标数据类型由<类型名>指定。
④数组下标运算符:[](下标)。
⑤指针运算符:*(取地址)和&(值引用)。
⑥动态存储分配运算符:new(分配)和delete(释放)。
⑦作用域限定运算符:::(类域或全局域)
9优先级和结合性
根据运算符的优先级和结合性,可以将表达式的计算顺序规则总结为以下3条:
(1)优先计算带有括号的子表达式;
(2)在没有括号的部分,依照运算符优先级,由高到低进行计算;
(3)具有相同优先级的运算符,按照结合性规定,依次进行计算。
C+ +运算符分成17个优先级,优先级数字越小,表示运算符优先级越高。具有同一优先级数字的运算符,优先级相同。单目运算符、赋值运算符和复合赋值运算符是右结合的,其余所有运算符都是左结合的。
编辑推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |