【问题标题】:C++ 2d char array initializationC++ 2d 字符数组初始化
【发布时间】:2022-07-23 01:01:57
【问题描述】:

我想知道下面的初始化相当于什么。

char array[3][32] = { "string0", "string1" , "string2"};

上面的代码可以工作,但它有变量被多次初始化的风险。

我试过了,但它只得到最后一个数字而不是整个字符串。

char array[3][32];
*array[0] = 'string0';
*array[1] = 'string1';
*array[2] = 'string2';

提前感谢您的帮助!

【问题讨论】:

  • “上面的代码可以工作,但它有变量被多次初始化的风险。” 任何变量都只初始化一次,句号。也就是说,在 C++ 中不能多次“初始化”一个变量。
  • “多次初始化”是什么意思?
  • 我怀疑'string0' 是因为看到错误并在编译之前更改代码。这不是学习 C++ 的推荐方法。 Undefined Behavior 表示“它可以编译”并不意味着“它是正确且定义明确的”。

标签: c++ arrays char


【解决方案1】:

您应该使用 strcpy() 来复制 C 风格的字符串。

'' 也用于字符常量。对于 字符串文字,您应该 ""

char array[3][32];
strcpy(array[0], "string0");
strcpy(array[1], "string1");
strcpy(array[2], "string2");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2014-09-26
    • 2022-01-16
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多