0
我有關於c語法的這個簡單問題。當我們寫道:c語法在兩個不同的行?
printf("hello world
");
編譯器產生一個錯誤。爲什麼?在這種情況下:
for (i = 0; i < MAXLINE - 1
&& (c=getchar)) != EOF && c != '\n'; ++i)
一切都編譯好。這一切的一般規則是什麼?
謝謝!
我有關於c語法的這個簡單問題。當我們寫道:c語法在兩個不同的行?
printf("hello world
");
編譯器產生一個錯誤。爲什麼?在這種情況下:
for (i = 0; i < MAXLINE - 1
&& (c=getchar)) != EOF && c != '\n'; ++i)
一切都編譯好。這一切的一般規則是什麼?
謝謝!
A 字符串字面值("..."
)不能包含裸新行。
如果你想在字符串中的換行符,使用\n
轉義序列(`的「hello world \ n」)
因爲你打破一個字符串,這是不允許的,在第一例。第二,你只是將語法包裝在多行中。例如:
printf("hello world"
);
會編譯。
我知道你在說什麼,但你說的方式有點令人困惑。一個字符串文字顯然可以包含一個換行符(「... \ n」),但它不會被寫入或表示爲代碼中的文字換行符。相反,使用轉義序列'\ n'來表示換行符;編譯器會將其轉換爲適當的字符。 (@SLaks,我知道你知道這一點 - 只是爲了澄清任何可能需要首先提問的人的利益。) – Caleb