gpt4 book ai didi

c++ - 用 2 维数组初始化 3 维数组

转载 作者:行者123 更新时间:2023-11-30 04:00:22 31 4
gpt4 key购买 nike

抱歉,如果这看起来像是一个愚蠢的问题。

我有这段代码:

char array1[2];
char array2[2];
char array3[2];

char *array[] = {
array1,
array2,
array3,
}

现在我将 array1、array2、array3 更改为二维数组:

char array1[2][2];
char array2[2][2];
char array3[2][2];

我收到以下错误:错误:初始化时无法将 'char (*)[2]' 转换为 'char*'

如何用二维数组初始化数组?

我也尝试了以下没有用的:

char *array[2][2] = {
array1,
array2,
array3,
}

char array[][2][2] = {
array1,
array2,
array3,
}

谢谢!

最佳答案

C++11 使这变得简单:

char array1[2][2];
char array2[2][2];
char array3[2][2];


std::decay<decltype(array1)>::type array[] = {
array1,
array2,
array3,
};

这相当于(在我看来不可读)语法

char (* array [])[2] = {
array1,
array2,
array3,
};

规则和往常一样,您可以在 every decent C++ book 中找到相同的规则:

  • 运算符优先级
  • 类型衰减

关于c++ - 用 2 维数组初始化 3 维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26358793/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com