null是定义在《stdio.h》文件中的符号常量 这句话怎么理解??

[复制链接]
查看11 | 回复4 | 2016-3-13 22:41:27 | 显示全部楼层 |阅读模式
为什么我写代码的时候 如 int *p=NULL;
我前面没有加上#include编译器也可以识别 NULL这个符号?

回复

使用道具 举报

千问 | 2016-3-13 22:41:27 | 显示全部楼层
有很多的头文件都定义了NULL,你在NULL下点击到定义,打开看看是在哪个头文件下定义的就知道为什么没有包含也能识别NULL了。还有编译器在编译的时候会自动添加一些标准的头文件,这些头文件是不需要在源文件中定义的~以上都是个人理解
回复

使用道具 举报

千问 | 2016-3-13 22:41:27 | 显示全部楼层
蓝雨705的回答是靠谱的。NULL是一个符号常量(如果你不知道什么是符号常量,请查阅C教材),不同的编译器可能定义在不同的文件夹中,如Turbo C++,可能在stdio.h中。如果你前面没有加#include,却可以用NULL,只能说明编译器自动给你包含这个头文件。如Turbo C就是这样的,前面包含stdio.h,照样可以用NULL
回复

使用道具 举报

千问 | 2016-3-13 22:41:27 | 显示全部楼层
是和if,while一样的关键字。就是表示0.
回复

使用道具 举报

千问 | 2016-3-13 22:41:27 | 显示全部楼层
#define NULL 0
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行