在C中定义长数组

时间:2013-10-29 17:55:00

标签: c ubuntu-12.04

我想在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的终结字符可能不同)。

编辑:逗号是罪魁祸首。抱歉,慢慢来。

3 个答案:

答案 0 :(得分:5)

只有在预处理器指令和内部字符串中才需要转义换行符。只需输入您喜欢的所有空白区域即可。只要编译器没有抱怨你应该是好的。

答案 1 :(得分:1)

在大多数情况下,C编译器不关心空格(字符串等除外)。这意味着只要语法仍然有效,您就可以拥有尽可能多的空格。唯一的限制是每个标记必须至少由一个空格分隔。

因此,简而言之,只要在最后一个元素之前的每个元素后面都有一个逗号,就可以根据需要用尽可能多的空格,制表符和换行符写出数组。

答案 2 :(得分:1)

正如在另一个答案中所讨论的,编译器足够聪明,可以识别语句是否扩展到多行。

但是,实际上有一种明确的方法可以告诉编译器该语句在下一行继续:\。 在您的示例中,您使用了斜杠(/)而不是反斜杠,忘记了,。这会导致整数除法,从而导致您观察到01

如果您想使用'\',您可以编写如下代码:

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};