您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

第四章C++:表达式概念-运算符的应用

2024/4/20 22:16:48发布5次查看
介绍由语言本身定义、并用于内置类型运算对象的运算符,同时简单介绍几种标准库定义的运算符。
第四章 表达式基础概念一元运算符:作用于一个运算对象的运算符
二元运算符:作用于两个运算对象的运算符
函数调用也是一种特殊的运算符,它对运算对象的数量没有限制
左值:当对象被当做左值的时候,用的是对象的身份(在内存中的位置)。
右值:当一个对象被当做右值的时候,用的是对象的值(内容)。
求值顺序在大多数情况下,不会明确指定求值顺序。只有四种运算符明确规定可运算对象的求值顺序:
1. 逻辑与运算符(&&):先求左侧才求右侧,只有当左侧为真时才计算右侧的值2. 逻辑或运算符(||)3. 条件运算符(?:)4. 逗号运算符(,)
算术运算符bool b = true;bool b2 = -b; //b2是true。-1不等于0,所以b2的值为真
c++11规定,商一律向0取整(即直接切除小数部分)。
若m%n不等于0,则它的符号和m相同:
(-m)/n 和 m/(-n) 都等于 -(m/n)m%(-n) 等于 m%n(-m)%n 等于 -(m%n)
逻辑和关系运算符关系运算符作用于算术或指针类型,逻辑运算符作用于任意能转换成布尔值的类型。
- 它们的返回值都是布尔类型。
逻辑与 &&、 逻辑或 ||短路求值(short-circuit evaluation)
关系运算符关系运算符的求值结果是布尔值,连在一起用会产生意想不到的结果:
if(i < j < k) //若k大于1则为真
应改为:
if(i < j && j < k)
赋值运算符赋值运算符飞左侧运算对象必须是一个可修改的左值。
如果赋值运算符的左右两个运算对象类型不同,则右侧运算对象将转换成左侧运算对象的类型。
赋值运算满足右结合律int i, j;i = j = 0; //正确,都被赋值为0
条件运算符 ?:cond ? expr1 : expr2
满足右结合律,运算对象一般按照从右向左的顺序组合。
位运算符作用于整数类型的运算对象,以及一种名为bitset的标准库类型的运算对象。
~ :位求反<< :左移>> :右移& :位与^ :位异或| :位或
sizeof运算符返回所占字节数,所得值是一个size_t类型。
有如下两种形式:sizeof(type)sizeof expr
满足右结合律。
类型转换隐式类型转换大多数情况下数组转换成指针。
- 当数组被用作decltype关键字参数,或者作为取址符(&)、sizeof及typeid等运算符的运算对象时,上述转换不会发生。
显示转换命名的强制类型转换
cast-name<type>(expression)
cast-name有如下几种:
dynamic_cast //运行时类型识别static_cast //只要不包含底层const,均可进行强制类型转换,告诉编译器不在乎精度损失const_cast //只能改变运算对象的底层const,称为去掉cast性质(cast away the const)。将常量对象转换为非常量对象。reinterpret_cast //
参考:c++primer第五版
介绍由语言本身定义、并用于内置类型运算对象的运算符,同时简单介绍几种标准库定义的运算符。
相关文章:
第一章c++:函数返回值、gnu编译器命令
第二章c++:变量和基本类型
以上就是第四章c++:表达式概念-运算符的应用的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录