c/c++ nullptr和NULL

2021-01-20 02:15

阅读:421

标签:main   代码   c中   ++   整数   一个   str   ptr   空指针   

nullptr是c++11中的关键字,表示空指针

要区分nullptr和NULL,首先要明白NULL的含义:

NULL是一个宏定义,在c和c++中的定义不同,c中NULL为(void*)0,而c++中NULL为整数0
所以在c++中int *p=NULL; 实际表示将指针P的值赋为0,而c++中当一个指针的值为0时,认为指针为空指针

然后理解nullptr:

nullptr是一个字面值常量,类型为std::nullptr_t,空指针常数可以转换为任意类型的指针类型。

在c++中(void *)不能转化为任意类型的指针,即 int p=(void)是错误的,但int *p=nullptr是正确的,原因

对于函数重载:若c++中 (void *)支持任意类型转换,函数重载时将出现问题下列代码中fun(NULL)将不能判断调用哪个函数

void fun(int i){cout

c/c++ nullptr和NULL

标签:main   代码   c中   ++   整数   一个   str   ptr   空指针   

原文地址:https://www.cnblogs.com/rower/p/12904814.html


评论


亲,登录后才可以留言!