0

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

编辑:逗号是罪魁祸首。很抱歉耽误您的时间。

4

3 回答 3

5

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

于 2013-10-29T17:58:56.923 回答
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}; 
于 2013-10-29T18:44:01.050 回答
1

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

因此,简而言之,只要在最后一个元素之前的每个元素之后都有一个逗号,您就可以根据需要写出包含任意数量的空格、制表符和换行符的数组。

于 2013-10-29T18:16:17.740 回答