有没有办法用混合字符和“字符串”来初始化数组
问题描述:
我想在编译期间用最少量的手动工作来初始化char数组。有没有办法用混合字符和“字符串”来初始化数组
是否有此
char arr[5] = {0x4, 'a', 's', 'd' 'c'};
如
char arr[5] = {0x4, "asdc"};
答
你可以在字符的int字符串转义序列整合工作简写格式:
char arr[6] = { "\x04asdc"};
编辑:更正阵列的长度。
+4
这个问题是,字符串'“\ x04asdc”'是*六个*字符长。指定一个较小的数组大小是不正确的。 –
+0
@Someprogrammerdude请忽略我以前的评论,我不小心在C页面结束了。 nul终结者的确在C++中明确授权。 – Quentin
答
不,这是不可能的。但是,你可以做
char arr[] = "\04asdc";
这样做的问题是,是不会正是像你展示原始数组,因为它包含一个字符串结束,因此有六个要素。
这不是[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)?你为什么想要那个'arr'?如果你想在编译时初始化它,它不应该是'const'吗? – Walter