#include <stdio.h>
int main()
{
printf("你是我的小呀小苹果儿\n"
"怎么爱你都不嫌多\n"
"红红的小脸儿温暖我的心窝\n"
"点亮我生命的火 火火火火\n");
return 0;
}
#include <stdio.h>
int main()
{
//这是一首思念家乡的诗
printf("床前明月光,");
printf("疑是地上霜。");
printf("举头望明月,");
printf("低头思故乡。");
/*短短四句诗,写得清新朴素,明白如话。它的内容是单纯的,但同时却又是丰富的。
它是容易理解的,却又是体味不尽的。诗人所没有说的比他已经说出来的要多得多。
它的构思是细致而深曲的,但却又是脱口吟成、浑然无迹的。从这里,我们不难领
会到李白绝句的“自然”、“无意于工而无不工”的妙境。*/
return 0;
}
看着两个他的printf语句不一样呢,第一个只有一个printf但是第二个每条语句前都有printf,求大神解惑
printf的第一个参数就是字符串,准确地说叫格式化字符串。printf会把这个字符串输出,如果其中包含格式化指示符(%d %f等),就按顺序将后面参数放到格式化字符串的相应位置输出。
第二个例子中就是用了4个printf输出了4句诗。因无需加入其他格式化指示,故直接把要输出的句子作为第一个参数了。
第一个例子其实也是一样的,只是用了一个printf语句,参数是一个包含了4句话 4个换行的字符串。
这里用到C语言的一个特性:如果两个字符串字面量(指用双引号括起来的字符串)紧挨着,或之间只有空白相隔,就自动将这两个字符串接成一段字符串。 注意C语言将空格 tab 回车都视作空白字符(blank),所以即便这4句话写在了4行,但它们之间没有其他C语言的符号,C仍会将它们自动连接成一个字符串。于是这句代码其实是这样的:
printf("你是我的小呀小苹果儿\n怎么爱你都不嫌多\n红红的小脸儿温暖我的心窝\n点亮我生命的火 火火火火\n");
这样printf的第一个参数还是一个字符串,可以正常输出。
这个特性其实就是可以让你把一个很长的字符串写在多行上,这样代码更容易读。
第一个是输出整段文字,第二个是逐行输出文字。