這兩個(gè)printf語(yǔ)句為什么不一樣呢,求區(qū)別
#include <stdio.h>
int main()
{
??? printf("你是我的小呀小蘋果兒\n"
??? "怎么愛(ài)你都不嫌多\n"
??? "紅紅的小臉兒溫暖我的心窩\n"
??? "點(diǎn)亮我生命的火 火火火火\n");
??? return 0;
}
#include <stdio.h>
int main()
{
??? //這是一首思念家鄉(xiāng)的詩(shī)
??? printf("床前明月光,");
??? printf("疑是地上霜。");
??? printf("舉頭望明月,");
??? printf("低頭思故鄉(xiāng)。");
??? /*短短四句詩(shī),寫得清新樸素,明白如話。它的內(nèi)容是單純的,但同時(shí)卻又是豐富的。
??? 它是容易理解的,卻又是體味不盡的。詩(shī)人所沒(méi)有說(shuō)的比他已經(jīng)說(shuō)出來(lái)的要多得多。
??? 它的構(gòu)思是細(xì)致而深曲的,但卻又是脫口吟成、渾然無(wú)跡的。從這里,我們不難領(lǐng)
??? 會(huì)到李白絕句的“自然”、“無(wú)意于工而無(wú)不工”的妙境。*/
?return 0;???
}
看著兩個(gè)他的printf語(yǔ)句不一樣呢,第一個(gè)只有一個(gè)printf但是第二個(gè)每條語(yǔ)句前都有printf,求大神解惑
2015-08-07
printf的第一個(gè)參數(shù)就是字符串,準(zhǔn)確地說(shuō)叫格式化字符串。printf會(huì)把這個(gè)字符串輸出,如果其中包含格式化指示符(%d %f等),就按順序?qū)⒑竺鎱?shù)放到格式化字符串的相應(yīng)位置輸出。
第二個(gè)例子中就是用了4個(gè)printf輸出了4句詩(shī)。因無(wú)需加入其他格式化指示,故直接把要輸出的句子作為第一個(gè)參數(shù)了。
第一個(gè)例子其實(shí)也是一樣的,只是用了一個(gè)printf語(yǔ)句,參數(shù)是一個(gè)包含了4句話 4個(gè)換行的字符串。
這里用到C語(yǔ)言的一個(gè)特性:如果兩個(gè)字符串字面量(指用雙引號(hào)括起來(lái)的字符串)緊挨著,或之間只有空白相隔,就自動(dòng)將這兩個(gè)字符串接成一段字符串。 注意C語(yǔ)言將空格 tab 回車都視作空白字符(blank),所以即便這4句話寫在了4行,但它們之間沒(méi)有其他C語(yǔ)言的符號(hào),C仍會(huì)將它們自動(dòng)連接成一個(gè)字符串。于是這句代碼其實(shí)是這樣的:
這樣printf的第一個(gè)參數(shù)還是一個(gè)字符串,可以正常輸出。
這個(gè)特性其實(shí)就是可以讓你把一個(gè)很長(zhǎng)的字符串寫在多行上,這樣代碼更容易讀。
2015-08-07
第一個(gè)是輸出整段文字,第二個(gè)是逐行輸出文字。