nullptr為c++11中新加入的。
1、C程式中的NULL為空指針,但是該空指針在c++11中不能延用
在c程式中NULL是一個宏定義。定義如下:
NULL實際上是一個空指針。在過程中發生了隐式類型轉換,把void指針轉換成了相應類型的指針。
但是在c++中NULL由于void*類型不允許隐式轉換成其他類型,是以NULL不代表空指針,而是0 。
3、c++11中nullptr代表空指針,NULL代表0
這裡對null做了一個輸出,輸出null方法借鑒以下連結。
添加連結描述
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
double *c1 = NULL;
double *c2 = nullptr;
int a1 = NULL;
//int a2 = nullptr;//報錯,表示無法從“nullptr”轉化為“int”類型
int a2 = (int)nullptr;
printf(" %s\n", c1);
printf(" %s\n", c2);
printf(" %s\n", a1);
printf(" %s\n", a2);
return 0;
輸出結果:

----?怎麼和我想象中的結果不一樣。
待補充。