社区
C语言
帖子详情
一个指针在定义后是应该被付值为0,还是NULL?
yeahchang
2003-11-05 06:44:29
好像微软付为NULL(NULL,0,void*有何区别?)
(原来记得有过类似的文章,但现在找不着了!)
...全文
161
11
打赏
收藏
一个指针在定义后是应该被付值为0,还是NULL?
好像微软付为NULL(NULL,0,void*有何区别?) (原来记得有过类似的文章,但现在找不着了!)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
palstu
2003-11-06
打赏
举报
回复
在头文件stido.h中,NULL是0的宏定义
#define NULL 0
TianGuangZao
2003-11-06
打赏
举报
回复
comp.lang.c 对这类常见问题有详细的 FAQ 解答。
http://www.eskimo.com/~scs/C-faq/s5.html
danielhf
2003-11-05
打赏
举报
回复
在C++中, 给指针赋0是安全的,表示它不指向任何对象, C中有些不好的习惯, 比方说#define
(void*)0 是一个C转换,表示是一个指针, 而0在默认情况下是一个int.
短歌如风
2003-11-05
打赏
举报
回复
C允许从void*到任意指针的隐式转换,而C++是不允许的,但允许整数0到任意指针的转换。
在C++中,
int * a;
a = (vod*) 0;是不行的,因此C++中要把NULL定义为0而不是((void*)0)。
无论在C++中还是在C中,都应该用NULL。也许某一天C++语言就会改为不允许整数0到指针的转换而改用一个关键字表示空指针。这时把NULL重定义一下就行了。用0表示空指针的代码都是为了少包含一个头文件。
yeahchang
2003-11-05
打赏
举报
回复
/* _null.h
Definition of NULL.
*/
/*
* C/C++ Run Time Library - Version 10.0
*
* Copyright (c) 1987, 2000 by Inprise Corporation
* All Rights Reserved.
*
*/
/* $Revision: 9.1 $ */
#ifndef NULL
# if defined(__cplusplus) || defined(_Windows)
# define NULL 0
# else
# define NULL ((void *)0)
# endif
#endif
那0和(void *)0有什么不同??
wongsung
2003-11-05
打赏
举报
回复
正规一点应该用NULL
指针会指向如下地址
0X00000000
tonybaobao
2003-11-05
打赏
举报
回复
定义了一个指针,最好赋予一个特定的内存单元。不推荐赋0的。
liubingqian
2003-11-05
打赏
举报
回复
上面错了,是
#define NULL 0
liubingqian
2003-11-05
打赏
举报
回复
在C++中用0的多,而C中用NULL的多。其实是习惯问题。
liubingqian
2003-11-05
打赏
举报
回复
在stdio.h中是这样定义的:
#define 0 NULL
所以它们是一样的。
hawkxjy
2003-11-05
打赏
举报
回复
没有区别的,都是一样的
VC中,用宏定义把0和NULL定位相同的。
IP网络基础知识及原理.ppt
IP网络基础知识及原理.ppt
网络游戏运营培训资料第一讲市场推广.ppt
网络游戏运营培训资料第一讲市场推广.ppt
园林绿化工程项目管理要点.ppt
园林绿化工程项目管理要点.ppt
单片机与嵌入式系统C语言编程.ppt
单片机与嵌入式系统C语言编程.ppt
传感器与PLC编程技术基础.ppt
传感器与PLC编程技术基础.ppt
C语言
70,021
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章