wang815309286 发表于 2016-9-5 11:03:29

关于EOF,NULL,NUL的几个问题

学了一段时间的c语言,有几个问题还是不太明白,自己也百度过 ,不过还是有点迷糊,所以想请教一下各位。
1.NUL到底是什么?在ASCLL码表中,它是0,那是不是代表它是一个空字符呢?
2.EOF到底什么?百度说EOF==-1,例如:scanf(“....”)==EOF    ,什么情况下这个表达式为真?
3.文件结尾又是什么?是遇到空字符,空指针还是换行符么?
4.NULL是空指针,但是空指针有什么用呢?百度上有人说NULL是定义的宏,#define NULLint*0    这样吗?
希望能帮帮我~谢谢大家~

Jessie~~ 发表于 2016-9-5 20:21:50

Krant5 发表于 2016-9-5 22:48:07

NULL是一个预定义的东西,一般用作指针为空等情况,如果打印其值得话应该是为0的,但是你不应该纠结于他到底是什么,而应该知道它用在哪里就好。EOF也是一个预定义的宏,其值为-1,但是其类型是int,这点值得注意。NUL我不知道~{:10_266:}

仰望天上的光 发表于 2016-9-6 21:23:02

1. NUL表示ascii码值为0的字符,也就是我们常说的'\0'
2. 当你输入ctrl+z换行后,scanf(“....”)==EOF    为真
3. 文件结尾就是文件中最后一个字符(如果有的话)的下一个字符
4. 你可以在VS中,右键点击你要查看的符号,然后选择“goto definition”就可以看到该符号的定义了
页: [1]
查看完整版本: 关于EOF,NULL,NUL的几个问题