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);
本文深入探讨了C++中的sizeof运算符,解释了它如何返回类型或变量的大小,并通过示例展示了其在字符串和vector类型上的应用。此外,还详细介绍了C++中的类型转换,包括static_cast、const_cast和reinterpret_cast的用法与限制。

被折叠的 条评论
为什么被折叠?



