我想在C中定义一个非常长的数组,并且同时不是并排地以垂直方式写入元素。我输入的代码块将说明情况。为了继续定义数组“/”,我应该在行的末尾使用哪个字符,但不打印前面和后面的元素,而是打印零或一个。我怎么能做到这一点?
int i, grades[40] = {49, 80, 84, 73, 89, 78, 78, 92, 56, 85, 10, 84, 59, 56
62, 53, 83, 81, 65, 81, 69, 69, 53, 55, 77, 82, 81, 76, 79, 83, 74, 86
78, 55, 66, 60, 68, 92, 87, 86};
感谢您的贡献。顺便说一句,我在Ubuntu 12.04上(认为Ubuntu和Windows的终结字符可能不同)。
编辑:逗号是罪魁祸首。抱歉,慢慢来。
答案 0 :(得分:5)
只有在预处理器指令和内部字符串中才需要转义换行符。只需输入您喜欢的所有空白区域即可。只要编译器没有抱怨你应该是好的。
答案 1 :(得分:1)
在大多数情况下,C编译器不关心空格(字符串等除外)。这意味着只要语法仍然有效,您就可以拥有尽可能多的空格。唯一的限制是每个标记必须至少由一个空格分隔。
因此,简而言之,只要在最后一个元素之前的每个元素后面都有一个逗号,就可以根据需要用尽可能多的空格,制表符和换行符写出数组。
答案 2 :(得分:1)
正如在另一个答案中所讨论的,编译器足够聪明,可以识别语句是否扩展到多行。
但是,实际上有一种明确的方法可以告诉编译器该语句在下一行继续:\
。
在您的示例中,您使用了斜杠(/
)而不是反斜杠,忘记了,
。这会导致整数除法,从而导致您观察到0
和1
。
如果您想使用'\',您可以编写如下代码:
int i, grades[40] = {49, 80, 84, 73, 89, 78, 78, 92, 56, 85, 10, 84, 59, 56, \
62, 53, 83, 81, 65, 81, 69, 69, 53, 55, 77, 82, 81, 76, 79, 83, 74, 86, \
78, 55, 66, 60, 68, 92, 87, 86};