学习C++primer心得08.7.1

  对引用类型做 sizeof 操作将返回存放此引用类型对象所需的内在空间大小。

对指针做 sizeof 操作将返回存放指针所需的内在大小;注意,如果要获取该指针所指向对象的大小,则必须对指针进行引用。

delete pi;

如果指针指向不是用 new 分配的内存地址,则在该指针上使用 delete 是不合法的。

C++ 保证:删除 0 值的指针是安全的。

对同一个内存空间使用两次 delete 表达式。当两个指针指向同一个动态创建的对象,删除时就会发生错误。如果在其中一个指针上做 delete 运算,将该对象的内存空间返还给自由存储区,然后接着 delete 第二个指针,此时则自由存储区可能会被破坏。

vector<string> svec(10);

delete svec;// svec是一个vector对象,不是指针,不能对它进行delete操作。

显式转换也称为强制类型转换(cast),包括以下列名字命名的强制类型转换操作符:static_castdynamic_castconst_cast reinterpret_cast

08.7.1

dynamic_cast 支持运行时识别指针或引用所指向的对象。

const_cast ,顾名思义,将转换掉表达式的 const 性质。

编译器隐式执行的任何类型转换都可以由 static_cast 显式完成:可通过 static_cast 将存放在 void* 中的指针值强制转换为原来的指针类型,此时我们应确保保持指针值。

reinterpret_cast 通常为操作数的位模式提供较低层次的重新解释。

对于 switch 结构,只能在它的最后一个 case 标号或 default 标号后面定义变量:

制定这个规则是为避免出现代码跳过变量的定义和初始化的情况。

goto 语句不能跨越变量的定义语句向前跳转:如果确实需要在 goto 和其跳转对应的标号之间定义变量,则定义必须放在一个块语句中:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值