您的位置:首页 > 编程语言 > C语言/C++

C++ Primer 5e chapter 4

2015-08-20 15:29 309 查看
1、左值与右值,右值是对象的内容,左值为对象的内存地址;

2、条件判断中赋值运算符的优先级比逻辑运算符低,所以记得加括号;

3、++i,首先将i加1,然后将改变后的对象作为求值结果;i++,则相反;

4、*p++ = *(p++);

5、位运算在处理有符号数的时候,且为负值,如何处理依赖于机器,左移可能会改变符号位,所以尽量使用无符号数字做位运算;

6、int+unsigned int 时,无符号数字不小于有符号数时候,int会被转换为unsigned int,按照取模的方式,成为无符号数字;另外的情况,依赖于机器;

7、static_cast<double> j/i; 具有明确定义的类型转换,不包含底层const;转换为更大范围的数字,不在乎精度的丢失,转变void*;

8、dynamic_cast,用于RTTI,将基类的指针安全的转换为派生类的指针;或引用

9、const_cast,用于去掉或者添加底层const,如果真是一个const,则使用cast后写对象是未定义行为,常出现在重载函数中,方便复用常量函数;

10、reinterpret_cast; int* p; char*pc = reinterpret_cast<char*> p;该类型转换本质上依赖于机器,很容易出现错误,需要牢记转换后的char*是一个int*;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: