int main()
{
const char *collectionA[] = { "adef5444" }; // 4
const char *collectionB[] = { "adef5444", "CDE" }; // 8
const char *str = "abc"; // 4
cout << sizeof(collectionA) << endl;
cout << sizeof(collectionB) << endl;
cout << sizeof(str) << endl;
return 0;
}
使用sizeof运算符是可以获取数组的大小的,但是记得当sizeof作用于指针时,大小是4。
第一个数组之所以size是4,只是因为collectionA中存放的其实不是adef5444,而是一个const char *指针,指向adef5444而已。collectionB中存放了两根指针,所以大小是8。
这篇博客探讨了C++中sizeof运算符的使用,指出它能获取数组的大小,但针对指针变量时返回的是指针的字节数。示例中,collectionA的大小为4,因为它存储了一个const char*指针;collectionB的大小为8,因为它包含两个指针。str的大小同样是4,因为它是一个字符串字面量的指针。
3199

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



