小编awe*_*ber的帖子

为什么 sizeof array(type string) 是 24 字节,只有一个空格元素?

我遇到了一个问题,我需要找到数组的大小来确定数组的长度。我的理解是一个字符是 1 个字节,一个字符串是 2 个字节('\0'字符的额外字节)。

但是,我发现字符串数组的单个元素是 24 个字节。

我输出了一个字符串、字符和整数变量的大小来验证我的理解。我对 int、char 和 string 数组的单个元素做了同样的处理。

#include <iostream>

using namespace std;


int main()
{
    string strArr[1] = {" "};
    
    cout
        << sizeof " " << endl
        << sizeof strArr[0] << endl
        << sizeof strArr << endl << endl;
    
    char charArr[1] = {'a'};
    
    cout
    << sizeof 'a' << endl
    << sizeof charArr[0] << endl
    << sizeof charArr << endl << endl;
    
    int intArr[1] = {1};
    
    cout
        << sizeof 1 << endl
        << …
Run Code Online (Sandbox Code Playgroud)

c++ arrays string

-2
推荐指数
1
解决办法
906
查看次数

标签 统计

arrays ×1

c++ ×1

string ×1