【发布时间】:2015-02-03 05:27:10
【问题描述】:
这行得通。
char s[] = {'\x20', '\x09', '\x0a', '\x0d'};
这些不是因为“错误:']'(或'}')标记之前的预期表达式”:
char s[4];
s = {'\x20', '\x09', '\x0a', '\x0d'};
char s[4];
s[]= {'\x20', '\x09', '\x0a', '\x0d'};
char s[4];
s[4]= {'\x20', '\x09', '\x0a', '\x0d'};
是否有任何正确的方法可以在不使用索引的情况下在两条不同的行上定义和初始化?我知道我可以说:
char s[4];
s[0] = '\x20';
s[1] = '\x09';
s[2] = '\x0a';
s[3] = '\x0d';
但出于好奇,我是否遗漏了一些微不足道的东西,或者这在 C 中是不可避免的吗?
【问题讨论】:
-
问题是,为什么您需要在两条不同的线路上执行此操作?
-
定义一个结构然后使用它。
-
这里没有结构体。这些是字符数组。
-
在不同的规则集之后,结构和数组的初始化方式不同。此外,您通常将 typedef 与结构一起使用,但不与数组一起使用。
-
我的问题涉及到我误解的核心问题。它已针对此进行了简化。这个问题的答案教会了我如何在结构中定义一个字符数组,然后在我的代码中的其他地方初始化它,我的结构是在哪里创建的。
标签: c character character-arrays