【问题标题】:Is there a way to initialize arrays with mixed chars and "strings"有没有办法用混合字符和“字符串”初始化数组
【发布时间】:2017-08-02 11:32:31
【问题描述】:

我希望在编译期间以最少的手动工作量初始化 char 数组。

是否有一个有效的速记格式

char arr[5] = {0x4, 'a', 's', 'd' 'c'};

比如

char arr[5] = {0x4, "asdc"};

【问题讨论】:

  • 这不是XY problem吗?你为什么想要那个arr?如果你想在编译时初始化它不应该是const吗?

标签: c++ arrays initialization


【解决方案1】:

您可以将 char int 字符串与转义序列集成:

char arr[6] = { "\x04asdc"};

edit:更正了数组的 wrog 长度。

【讨论】:

  • 这个问题是字符串"\x04asdc"六个个字符长。指定小数组大小是不正确的。
  • @Someprogrammerdude 请忽略我以前的 cmets,我不小心进入了 C 页面。在 C++ 中确实明确规定了 nul 终止符。
【解决方案2】:

不,那是不可能的。但是你可以

char arr[] = "\04asdc";

问题在于,它与您显示的原始数组完全不同,因为它包含字符串终止符,因此有六个元素。

【讨论】:

    猜你喜欢
    • 2023-01-31
    • 2019-12-08
    • 2011-12-11
    • 1970-01-01
    • 2016-11-12
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多