C++程序设计
介绍
知识点
P01 4个与类型转换相关的关键字
-
static_cast
:运算符完成相关类型之间的转换。
使用场景:如在同一类层次结构中的一个指针类型到另一个指针类型,整型到枚举类型,或者浮点型到整型等。 -
reinterpret_cast
:处理互不相关类型之间的转换。
使用场景:如从整型到指针,一种类型的指针到另一种类型的指针等。 -
dynamic_cast
:处理基类型到派生类型的转换。
使用场景:基类必须有虚函数,即为多态时,可以转换。 -
const_cast
:用来移除变量的const或volatile限定符。
使用场景:强制去掉const(或volatile) 必须使用const_cast 。
详细请参考:
P02 字符串
- 要点:
- 当几个
指针
复制给相同的常量字符串时,它们实际上会指向相同的内存地址。 - 当
常量内存
初始化字符串时,它们有单独的内存地址。 - C/C++中每个字符串均以字符串
\0
结尾。因此声明时要比字符串长度多1。注意字符串越界。
- 当几个
char str1[] = "hello world"; // str1 != str2
char str2[] = "hello world";
char* str3 = "hello world"; // str3 == str4
char* str4 = "hello world";