为了账号安全,请及时绑定邮箱和手机立即绑定

这两个printf语句为什么不一样呢,求区别

#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,求大神解惑

正在回答

2 回答

printf的第一个参数就是字符串,准确地说叫格式化字符串。printf会把这个字符串输出,如果其中包含格式化指示符(%d %f等),就按顺序将后面参数放到格式化字符串的相应位置输出。


第二个例子中就是用了4个printf输出了4句诗。因无需加入其他格式化指示,故直接把要输出的句子作为第一个参数了。


第一个例子其实也是一样的,只是用了一个printf语句,参数是一个包含了4句话 4个换行的字符串。

这里用到C语言的一个特性:如果两个字符串字面量(指用双引号括起来的字符串)紧挨着,或之间只有空白相隔,就自动将这两个字符串接成一段字符串。 注意C语言将空格 tab 回车都视作空白字符(blank),所以即便这4句话写在了4行,但它们之间没有其他C语言的符号,C仍会将它们自动连接成一个字符串。于是这句代码其实是这样的:

printf("你是我的小呀小苹果儿\n怎么爱你都不嫌多\n红红的小脸儿温暖我的心窝\n点亮我生命的火 火火火火\n");

这样printf的第一个参数还是一个字符串,可以正常输出。

这个特性其实就是可以让你把一个很长的字符串写在多行上,这样代码更容易读。

4 回复 有任何疑惑可以回复我~
#1

cu_若泪 提问者

非常感谢!
2015-08-09 回复 有任何疑惑可以回复我~

第一个是输出整段文字,第二个是逐行输出文字。

0 回复 有任何疑惑可以回复我~
#1

cu_若泪 提问者

非常感谢!
2015-08-09 回复 有任何疑惑可以回复我~
#2

kk_hahahahaha

cuole
2015-12-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这两个printf语句为什么不一样呢,求区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信