sizeof运算符
// sizeof返回 类型 或 变量的类型 或 表达式 所占空间大小
int size = sizeof("Hello");
cout << size << endl; // 输出6
vector<string> list = { };
cout << sizeof(list) << endl; // 输出24
vector<string> list1 = { "AB", "CD", "EF" };
cout << sizeof(list1) << endl; // 输出24
cout << sizeof(vector<string>) << endl; // 输出24
显示转换
static_cast
double data = 1;
// static_cast,不包含底层const,都可以使用
void* vp = &data;
double* dp = static_cast<double*>(vp);
const void* cvp = &data;
double* cdp = static_cast<double*>(cvp); // 错误,无法显示转换
const_cast
const double data = 1;
// const_cast,改变对象 底层const ,只能改变指针类型
const double *cdp = &data;
double *dp = const_cast<double *>(cdp);
*dp = 2;
cout << *dp << endl;
reinterpret_cast
指针转换,用于指针本来就是要转换的类型
Directories* dir = reinterpret_cast<Directories*>(dir);