为什么用双引号就会得到 Line1 Line20
#include <stdio.h>#define NL "\n"
int main()
{
printf("Line1%c"NL);
printf("Line2%c"NL);
return 0;
}
为什么用双引号就会得到
Line1
Line20
求大佬求解!!
谢谢!!! 本帖最后由 liuzhengyuan 于 2020-10-30 18:04 编辑
%c 占位符如果没有指定内容,默认为空字符串
通过宏定义,设置了 NL 为换行(\n) 对不起是我描述的问题不清楚,我想知道为什么用#define NL "\n"后面Line2就会多加一个0但是用#define NL '\n'就没有这个0了 awu122423 发表于 2020-10-30 18:03
对不起是我描述的问题不清楚,我想知道为什么用#define NL "\n"后面Line2就会多加一个0但是用#define NL '\ ...
我这里使用 gcc 编译测试了一下,发现两者的后面都没有加 0 啊!这....
awu122423 发表于 2020-10-30 18:08
啊!这....
你要点击帖子左下角【回复】,使用其功能,对方才能看见你的回复 liuzhengyuan 发表于 2020-10-30 18:11
你要点击帖子左下角【回复】,使用其功能,对方才能看见你的回复
原来是这样啊!谢谢! liuzhengyuan 发表于 2020-10-30 18:06
我这里使用 gcc 编译测试了一下,发现两者的后面都没有加 0
谢谢!我找到原因了因为用双引号会在第二个打印语句里多一个\0的转义字符 liuzhengyuan 发表于 2020-10-30 18:11
你要点击帖子左下角【回复】,使用其功能,对方才能看见你的回复
牛逼
页:
[1]