#include <iostream>
using namespace std;
void test_null(int* p)
{
cout << "void test_null(int* p)" << endl;
}
void test_null(int i)
{
cout << "void test_null(int i)" << endl;
}
int main() {
// NULL变量在 cstdlib头文件中定义,值为0(预处理变量)
// NULL变量也可能被一些编译器视为(void*)0,也不允许隐式转换成其他类型
// 故此处的调用将产生二义性
//test_null(NULL);
// 显式调用 void test_null(int i)
test_null(0);
// 0 也推荐被用于指针的初始化
// C11新增关键字 nullptr(字面值),专门区分0和实际意义的空指针NULL
// nullptr还可以被转换成其他类型的指针
test_null(nullptr);
return 0;
}
null和nullptr的区别简析
最新推荐文章于 2025-11-15 17:53:48 发布
本文探讨了C++中处理空指针的多种方式,包括使用NULL、0和C11新增的nullptr关键字。详细解释了这些不同空指针表示在函数调用中的行为和区别,以及它们如何影响代码的清晰性和安全性。

1510

被折叠的 条评论
为什么被折叠?



