C++11之指针空值–nullptr

引入nullptr的意义
在C++程序开发中,为了提高代码的健壮性,一般会在定义指针的同时会完成初始化操作(避免出现野指针),在指针指向尚未明确的情况下,都会给指针初始化为空指针。在C++98/03标准中,将一个指针初始化为空指针的方式有两种:
char *ptr = 0;
char *ptr = NULL;

在底层源码中 NULL 这个宏是这样定义的:
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif

可以看出,NULL可能被定义为字面常量0,或者是定义为无类型指针(void*)0。原因:由于 C++中,void类型无法隐式转换为其他类型的指针,此时使用0代替((void)0),用于解决空指针的问题。这个0(0

C++11之指针空值–nullptr最先出现在Python成神之路

版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/28129.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>