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
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/28129.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论