鱼C论坛

 找回密码
 立即注册
查看: 1572|回复: 8

[已解决]为什么用双引号就会得到 Line1 Line20

[复制链接]
发表于 2020-10-30 17:48:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#define NL "\n"
int main()
{
        printf("Line1%c"NL);
        printf("Line2%c"NL);

        return 0;
}
为什么用双引号就会得到
Line1
Line20

求大佬求解!!
谢谢!!!
最佳答案
2020-10-30 18:11:58


你要点击帖子左下角【回复】,使用其功能,对方才能看见你的回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-30 17:59:20 | 显示全部楼层
本帖最后由 liuzhengyuan 于 2020-10-30 18:04 编辑

%c 占位符如果没有指定内容,默认为空字符串
通过宏定义,设置了 NL 为换行(\n)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-30 18:03:34 | 显示全部楼层
对不起是我描述的问题不清楚,我想知道为什么用#define NL "\n"后面Line2就会多加一个0但是用#define NL '\n'就没有这个0了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-30 18:06:37 | 显示全部楼层
awu122423 发表于 2020-10-30 18:03
对不起是我描述的问题不清楚,我想知道为什么用#define NL "\n"后面Line2就会多加一个0但是用#define NL '\ ...

我这里使用 gcc 编译测试了一下,发现两者的后面都没有加 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-30 18:08:04 | 显示全部楼层
啊!这....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-30 18:11:58 | 显示全部楼层    本楼为最佳答案   


你要点击帖子左下角【回复】,使用其功能,对方才能看见你的回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-30 18:18:36 | 显示全部楼层
liuzhengyuan 发表于 2020-10-30 18:11
你要点击帖子左下角【回复】,使用其功能,对方才能看见你的回复

原来是这样啊!谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-30 18:21:47 | 显示全部楼层
liuzhengyuan 发表于 2020-10-30 18:06
我这里使用 gcc 编译测试了一下,发现两者的后面都没有加 0

谢谢!我找到原因了因为用双引号会在第二个打印语句里多一个\0的转义字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-1 15:32:02 | 显示全部楼层
liuzhengyuan 发表于 2020-10-30 18:11
你要点击帖子左下角【回复】,使用其功能,对方才能看见你的回复

牛逼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 17:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表