C/C++中的NULL
来源:互联网 发布:彩虹秒赞最新源码8.0 编辑:程序博客网 时间:2024/05/16 11:50
NULL表示空指针,用于表示一个无效的指针,它的值为0(早期C语言的实现中可能有非0空指针,现在已经不用)。对指针置NULL即标记指针无效,可以通过判断指针是否等NULL而防止指针的非法访问。
NULL在C/C++标准库中被定义为一个宏,一般为:
#define NULL ((void*)0) /*C中的“标准”写法,NULL被替换为一个void*类型的指针右值,值等于0;由于是void*类型,可以隐式转化为其它类型的指针。*/
#define NULL 0 //C++,相对C简化定义的原因是C++中void*无法自由隐式转换为其它类型的指针,而字面量0可以隐式转换为指针类型;尽管它实际上可以被作为整数0使用而不引起编译问题,但要注意,从设计目的上而言,NULL应当总是只作为空指针使用。
char c = NULL相当于char c = 0,也就是把c初始化为0。0在这里并不是空指针的意思,而是隐式转换成的字符'/0'——值为0的char字符。在C/C++的一般实现中,这样的行为(值为0的数值类型,无论是void*或int,转换为char的值还是0)是明确的,但这种用法并不恰当。一如LS的错误,ASCII及兼容字符集中数值0对应的字符为null character(null terminator),应该用NUL(没有在标准库中定义,语言中char类型用'/0',wchar_t类型用L'/0')而不是NULL表示。NUL的一个重要应用是作为C风格字符串的结尾标志字符。----(转载)
- C/C++中的NULL
- C/C++中的NULL
- NULL在c 中的含义
- 关于c语言中的NULL
- NULL在C和C++中的定义
- C 中的getline函数需要=NULL.
- C\C++中的NULL的用法
- C ++中的NULL与nullptr的区别
- c语言中的null 和0
- C语言中的'\0',0,NULL
- C/C++中的NULL与nullptr
- c语言中的'0','NULL'以及'\0'
- asp.net(C#)中的DBNull、Null、String.Empty等
- C语言中的空指针、空指针常量、NULL & 0
- C语言中的空指针、空指针常量、NULL & 0
- C语言中的空指针、空指针常量、NULL & 0
- c/c++中的NULL和0的区别
- 关于NULL在C和C++中的区别
- hibernate 配置
- WCDMA
- hibernate实现 api调用标准流程
- 我国软件产业多元化创新发展模式探讨
- 编程该在意什么
- C/C++中的NULL
- 还好
- 扬帆远航 不为彼岸只为海
- 开始啦,大学。My god?
- java应用服务器resin之牛刀小试
- 链表插入
- 在autocad2008中实现文档最大化(与2010不同,备查)
- 贪心算法_活动安排
- 学习的疑惑