建议使用nullptr而不是NULL

发现在做LeetCode题的时候使用空指针输入nu后编辑器会自动提示nullptr或NULL, 于是想知道这二者有什么区别.

c++ Primer 中:

得到空指针最直接的办法就是用字面值nullptr来初始化指针, 这也是c++11新标准刚刚引入的一种方法.

过去的程序还会用到一个名为NULL的预处理变量来给指针赋值, 这个变量在头文件cstdlib中定义,他的值就是0.

在新标准下, 现在的c++程序最好使用nullptr,同时尽量避免使用NULL.

另外,看LeetCode提示nullptr或NULL是按照答题区定义的结构体来的:

/**提示nullptr
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
 
 /**提示NULL
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
原文地址:https://www.cnblogs.com/SophieWang-cmu/p/14061881.html