【发布时间】:2021-03-04 13:57:19
【问题描述】:
这是我的代码。
#include <iostream>
#include<sstream>
using namespace std;
int main()
{
ostringstream outStr;
const char* strArray[]= {"Hi","How" ,"Howhuw","bdeuvc"};
int n;
cout << sizeof(strArray);
}
为什么我得到输出 32?有人可以向我解释一下吗?我知道我在这里有一个由 4 个元素组成的数组,但它的大小是 32 吗?
【问题讨论】:
-
fwiw,
std::vector<std::string>适合初学者,c-array 复杂且容易出错(在大多数情况下没有太多好处) -
@AshRay 你能不能提供一个比“谁能解释我。我是 C++ 初学者”更好的标题
-
sizeof(strArray)是4 * sizeof (const char*)(4 因为你的数组包含 4 个元素) -
A
char是一个字节。char*取决于指针的大小,但如果您的程序是 64 位,则可能是 8 个字节,如果您的程序是 32 位,则可能是 4 个字节。