我有关于c语法的这个简单问题。当我们写:
printf("hello world
");
编译器产生错误。为什么?在另一个案例中:
for (i = 0; i < MAXLINE - 1
&& (c=getchar)) != EOF && c != '\n'; ++i)
一切都很好。这一切的一般规则是什么?
谢谢!
答案 0 :(得分:9)
字符串文字("..."
)不能包含裸线。
如果你想在字符串中使用换行符,请使用\n
转义序列(`“hello world \ n”)
答案 1 :(得分:3)
因为你在第一个例子中打破了一个不允许的字符串文字。在第二个中,您只是将语法包装在多行上。例如:
printf("hello world"
);
将编译。