C++学习笔记(7):空指针nullptr

0 阅读1分钟

一、nullptr是什么

nullptr是C++11专门用来表示空指针的关键字,用来替代传统的NULL

二、为什么要用nullptr

1.类型安全: NULL本质是宏,通常定义为0(整数),而不是真正的指针
nullptr是指针类型,只能赋值给指针,不会和整数混淆

2.避免歧义:

    void func(int);
    void func(char*);
    
    func(NULL);
    //会调用func(0),因为NULL是0,不符合预期
    func(nullptr);
    //会调用func(char*),明确的行为
    

三、怎么使用

初始化指针为空

     int* p = nullptr;
     char* s = nullptr;
  

判断指针是否为空

     if(p == nullptr)等等
     if(!p)等等
     //二者效果一样