NULL的含义是什么
发布网友
发布时间:2022-04-29 17:36
我来回答
共5个回答
热心网友
时间:2023-05-28 10:05
NULL的 英文意思是 “没有东西”“空”
C 语言中 是 宏 定义。
#include <stdio.h> 里是:
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
意思是:
如果前面已定义了 NULL 则不 改变它,完毕。
如果前面没有定义NULL 但是 定义了 __cplusplus (C++) 则 定义 为 0,完毕。
如果前面没有定义NULL 也 没有 定义 __cplusplus ,则定义 为 ((void *)0),完毕。
其他头文件也可以重新定义NULL
----------
到底NULL是什么,取决于程序包含的头文件。
当然,你自己也可以定义它:
#define NULL 0
----------
一般来说,NULL 可能是 0, 也可能是 ((void *)0)
热心网友
时间:2023-05-28 10:05
我来个准确的回答吧。
首先说一下什么是指针,只要明白了指针的含义,你就明白null的含义了。
假设 有语句 int a=10;
那么编译器就在内存中开辟1个整型单元存放变量a,我们假设这个整型单元在内存中的地址是 0x1000;那么内存0x1000单元中存放了数据10,每次我们访问a的时候,实际上都是访问的0x1000单元中的10.
现在定义: int *p;
p=&a;
当编译器遇到语句int *p时,它也会在内存中给指针变量p分配一个内存单元,假设这个单元在内存的编址为0x1003;此时,0x1003中的值是不确定的,(因为我们没有给指针赋值),当编译器遇到了p=&a时,就会在0x1003单元中保存0x1000,请看,这就是说:(指针变量p代表的)内存单元0x1003存放了变量a的内存地址!用通俗的话说就是p指向了变量a。
p=NULL,就是说:内存单元0x1003不存放任何变量的内存地址,现在你明白了吗?
指针的实质是:
热心网友
时间:2023-05-28 10:06
如果令指针等于NULL那么那个指针是空指针
如果令int型等于NULL,那个int的值是0
在布尔型里NULL为假,!NULL为真
热心网友
时间:2023-05-28 10:06
NULL是C语言预定义的一个值,它的值是0。
NULL使指针指向空地址,是唯一可以赋给指针变量的整形值
热心网友
时间:2023-05-28 10:07
同意楼上的,
因为有
#define NULL 0