吻你不厌 发表于 2020-10-15 23:45:39

小白上路

#include <stdio.h>
#define NL "\n"

int main()
{
      printf("Line1%c",NL);
      printf("Line2%c",NL);

      return 0;
}
为什么”\n“不换行,而‘\n’换行呢?

EthanHsiung 发表于 2020-10-15 23:53:04

双引号中的内容是字符串,以看不见的“\0”结尾,单引号中的内容表示字符

昨非 发表于 2020-10-15 23:58:36

本帖最后由 昨非 于 2020-10-16 00:05 编辑

#include <stdio.h>
#define NL '\n'   //换成单引号

int main()
{
        printf("Line1%c", NL);
        printf("Line2%c", NL);

        return 0;
}

C语言对字符和字符串是有区分的,而define作为宏定义,只是起到一个替换作用
想要输出换行,需要换成%s
        printf("Line1%s","\n");

像这样,输出效果和你最开始是一样的
#include <stdio.h>
#define NL "\n"

int main()
{
        printf("Line1%s",NL);
        printf("Line2%s", NL);

        return 0;
}

吻你不厌 发表于 2020-10-16 00:00:14

昨非 发表于 2020-10-15 23:58


为什么要这样改呢

昨非 发表于 2020-10-16 00:02:43

吻你不厌 发表于 2020-10-16 00:00
为什么要这样改呢

又编辑了一下,你再看看

吻你不厌 发表于 2020-10-16 00:04:32

昨非 发表于 2020-10-16 00:02
又编辑了一下,你再看看

字符和字符串有什么区别呢?

昨非 发表于 2020-10-16 00:06:55

吻你不厌 发表于 2020-10-16 00:04
字符和字符串有什么区别呢?

一个单引号一个双引号,一个%c 一个%s
一个只能有一个字符,一个可以有多个字符
我是这么理解的,暂时可以这么理解

吻你不厌 发表于 2020-10-16 00:08:26

昨非 发表于 2020-10-16 00:06
一个单引号一个双引号,一个%c 一个%s
一个只能有一个字符,一个可以有多个字符
我是这么理解的,暂时 ...

好吧
页: [1]
查看完整版本: 小白上路