在c语言的指针使用中,NULL的值是?

 我来答
kaixingui2012
推荐于2016-05-25 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6499万
展开全部

C语言中NULL是个宏,在stddef.h中定义:

#ifndef NULL
#ifdef  __cplusplus   //如果是C++则为0
    #define NULL    0
#else
    #define NULL    ((void *)0)  //C中为((void *)0) 
#endif
#endif

无论是哪个语言,从数值角度上来说,NULL就是0。作为指针类型变量,赋值为NULL时,表示该指针是个空指针。NULL常用来判断一个指针变量是否为空指针,从而确定程序下一步的操作。如,程序开始,定义一个指针变量并初始化为空,在程序过程中,有可能使用该变量,也可能未使用该变量,则在程序返回前,可以通过判断其是否为空指针,来进行内存释放(防止内存泄露)。

void func()
{
    char *p=NULL;
    ....
    if ( p != NULL ) //当p用malloc成功分配过内存时,其值是个非0值。
        free(p);
}
我的Q867172910
2012-10-21 · 贡献了超过113个回答
知道答主
回答量:113
采纳率:0%
帮助的人:47.5万
展开全部
就0,以后编程会经常用到这个东西,特别是分配内存的时候
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shark_1980
推荐于2018-03-01 · TA获得超过4925个赞
知道小有建树答主
回答量:1096
采纳率:100%
帮助的人:410万
展开全部
在C语言中NULL被定义为:
#define NULL ((void*)0)
表示其值是0,但意义是空指针。把一个指针赋值为NULL,通常的说法是“将指针悬空”,这样可以防止对无效地址的访问。

但是在C++语言中NULL被定义为:
#define NULL 0
VC里也是这样定义的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友39688abd9
2012-10-21
知道答主
回答量:18
采纳率:0%
帮助的人:9.8万
展开全部
NULL的值为0。写成地址就是0x00000000。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
湛蓝水晶
推荐于2017-11-25 · 知道合伙人数码行家
湛蓝水晶
知道合伙人数码行家
采纳数:1388 获赞数:9352
毕业北京科技大学数学与应用数学专业,学士学位,IT行业6年从业经验。现任公司项目经理。

向TA提问 私信TA
展开全部
#define NULL (void*)0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式