时雨059905 发表于 2019-2-19 23:19:38

S1E5课后作业动动手的第0题关于宏定义的一个小问题

这个是原题
javascript:;
有点疑惑这个地方为什么要打一个 ' ' 呢?(我知道会报错。。)
javascript:;
于是它报错了
javascript:;
难道程序不能直接把NL的内容输入到下面的代码中去吗?
那么直接输入进去以后,为什么程序不能直接执行 \n 原本的功能呢?

良辰北辰 发表于 2019-2-20 01:24:44

本帖最后由 良辰北辰 于 2019-2-20 01:26 编辑

‘\n' ‘’ 单引号括起来的是字符不加上单引号‘’   \n是分开的 是 \和n在编译运行时编译器会将\和n按照ASCII码表打印出来 加上单引号就是告诉编译器它是一个字符不让它按照ASCII码表打印你可以看下ASCII码表中\=92n=110%c后的c是char 只能带入字符数字也不能用来做变量名 变量名只能是英文字母和数字或下划线组成

BngThea 发表于 2019-2-20 08:58:13

不加引号不是字符,而是变量

时雨059905 发表于 2019-2-20 20:59:45

良辰北辰 发表于 2019-2-20 01:24
‘\n' ‘’ 单引号括起来的是字符不加上单引号‘’   \n是分开的 是 \和n在编译运行时编译器会将\和n按 ...

但是为什么平时我们直接在一行程序末尾打\n它就能识别呢?

时雨059905 发表于 2019-2-20 21:00:38

BngThea 发表于 2019-2-20 08:58
不加引号不是字符,而是变量

但是平时我们写程序的时候直接在某一行的末尾写\n它却能识别这是一个转义字符,这是为什么呢?

良辰北辰 发表于 2019-2-21 01:39:14

时雨059905 发表于 2019-2-20 21:00
但是平时我们写程序的时候直接在某一行的末尾写\n它却能识别这是一个转义字符,这是为什么呢?

这个问题你可以问C语言创始人丹尼斯·里奇。{:9_229:} 规定了机器是这么识别的。我还是个初学者。不了解这么多,污龟老师可能可以为你解答。

时雨059905 发表于 2019-2-21 10:47:41

良辰北辰 发表于 2019-2-21 01:39
这个问题你可以问C语言创始人丹尼斯·里奇。 规定了机器是这么识别的。我还是个初学者。不了 ...

{:10_266:}好的吧

时雨059905 发表于 2019-2-25 23:52:04

啊啊啊自己顶起。。有人看到吗

时雨059905 发表于 2019-2-27 20:52:49

???真的没有人吗

来学习共进步 发表于 2019-2-28 20:43:29

#include<stdio.h>
#define NL '\n' //方法一
//#define NL 10 //方法二
int main(void)
{
        printf("Line1%c",NL);
        printf("Line2%c",NL);
        return 0;
}
不知道这么理解'\n'和\n能不能得到你的认可:
我所见过的\n可以在printf函数中会正确执行因为它被包含在""双引号中,字符串是被放置在字符数组中存放,每一个字符其实都是用单引号包裹起来的,只不过这样过于复杂,为了简便在使用字符串的时候用双引号代替。视频你接着看小甲鱼老师会在某一节课中提到字符数组的事情。

人造人 发表于 2019-2-28 22:26:31

这个问题不应该现在问,这个问题是后期的问题,就你目前的基础知识还不够,适当的囫囵吞枣是好的,第一遍学C语言囫囵吞枣带过,知道个大概就好,之后开始学汇编语言,之后带上汇编语言再一次学C语言,
这时你就可以去探索C语言的许多细节了
你认为C语言只学一遍就能学会吗?你太小看C语言了,那么很快的学完这个系列,开始汇编语言吧

时雨059905 发表于 2019-3-5 16:14:40

来学习共进步 发表于 2019-2-28 20:43
不知道这么理解'\n'和\n能不能得到你的认可:
我所见过的\n可以在printf函数中会正确执行因为它被包含在 ...

唔嗯嗯...但是脱离printf函数似乎就没法解释了...可能现在我的知识还无法理解这个问题吧...

时雨059905 发表于 2019-3-5 16:15:17

人造人 发表于 2019-2-28 22:26
这个问题不应该现在问,这个问题是后期的问题,就你目前的基础知识还不够,适当的囫囵吞枣是好的,第一遍学 ...

{:10_266:}啊好的...我还是继续学习吧
页: [1]
查看完整版本: S1E5课后作业动动手的第0题关于宏定义的一个小问题