运算符:
①成员访问运算符:点运算符和箭头运算符;
点运算符:获取类对象的一个成员;
箭头运算符:ptr->mem 等价于(*ptr).mem;
②条件运算符:cond?expr1:expr2;
③位运算符:
④移位运算符:
左移运算符<
右移运算符>>:如果运算对象是无符号类型,在左侧插入0;如果是带符号类型,视环境而定;
⑤sizeof()返回一条表达式或一个类型名字所占的字节数;
对char或者类型为char的表达式执行sizeof运算,结果得1;
对指针执行sizeof运算得到指针本身所占空间的大小;
对解引用指针执行sizeof运算得到指针指向对象所占空间的大小,指针不需要有效;
对数组执行sizeof运算得到整个数组所占空间的大小,等价于把数组中所有的元素各执行一个sizeof运算并将结果求和;
对string对象或vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素用了多少空间;
【注】:由于sizeof运算能得到整个数组的大小,故可以计算数组的大小除以单个元素的大小即可得到数组中元素的个数;size_t sz=sizeof(ia)/sizeof(*ia);
⑥强制类型转换cast:将对象的一种类型转换成另一种类型;
命名的强制类型转换:static_cast,dynamic_cast,const_cast,reinterpret_cast;
static_cast:任何具有明确定义的类型转换,只要不包括const,都可以使用static_cast;
const_cast:只能改变运算对象的底层const;只有const_cast能改变表达式的常量属性;
reinterpret_cast:为运算对象的位模式提供较低层次上的重新解释;