操作符%,该操作符的操作数只能为整型。
只有在必要时才使用后置操作符。
因为前置操作符需要做的工作更少,只需加1后的结果即可。而后置操作符则必须先保存操作数原来的值,以便返回未加1之前的值作为操作的结果。
后自增操作的优先级高于解引用操作。前自增操作符和解引用操作符的优先级相同。
*iter++等效于*(iter++)
对数组做sizeof操作等效于将对其元素类型做sizeof操作的结果乘上数组元素的个数。
值初始化的()语法必须置于类型名后面,而不是变量后。
int *pi = new int(); //pi points to an int value-initialized to 0
一旦删除了指针所指向的对象,立即将指针置为0,这样可以非常清楚地表明指针不再指向任何对象。
const对象的动态分配
const int *pci = new const int(1024);
整型提升:所有比int小的整型,包括char,signed char,unsigned char,short和unsigned short,如果该类型的所有可能的值都能包容在int内,它们会被提升为int型。
显示转换
dynamic_cast:支持运行时识别指针或引用所指向的对象。
const_cast:转换掉表达式的const性质。
static_cast:转换隐式执行的任何类型。
reinterpret_cast:为操作数的位模式提供较低层次的重新解释。
int *ip;
char *pc = reinterpret_cast<char*>(ip);
char *pc = (char*)ip; //旧式强制类型转换,与上等效
pc所指向的真实对象其实是Int型,而并非字符数组。
string str(pc); //error
第5章 表达式
最新推荐文章于 2024-01-28 16:55:04 发布