深入浅出c++11之nullptr

    科技2022-07-16  131

    c++11为什么要引入 nullptr 这个关键字,这的好处是什么,作用是什么?

    以前我们定义一个空指针写代码是这样

    int* p =NULL; int*p=0;

    那为什么这样写的好好的,又要整出一个nullptr呢?

    那么我们关键是要看这个NULL是怎么定义的,NULL不是关键字哈!

    #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif

    看见了没,就是宏定义出来的, 也就是我们假设它为0,代表一个空指针,那这样有什么问题呢?

    example:

    void testfunc(char* test); void testfunc(int test); testfunc(NULL);

    这样的代码会不会出现问题,你自己试一下, NULL表示0的话,那我到底调用哪个呢?

    所以c++11引入了这个关键字,为的就是解决这个问题!

    testfunc(nullptr); 就一定会调用参数是指针类型的函数了!

    注意事项:

    nullptr还有一个特殊情况,(个人觉得这个功能不太友好)

    BOOL  bok =nullptr;   是允许的, 大家记住了!

    keivin2006 认证博客专家 C/C vc/qt 音视频 一名c/c++/vc/qt 的小学生,“精通”c,“精通”c++,“精通”vc++,“精通”php,“精通”qt,“精通”java,“精通”python,“精通”c#,“精通”...! 编不下去了,只要见过名字的都我“精通”....为哈,因为我现在是csdn“砖家”了!本人qq: 88520350 qq学习群:930432714 (C/C++/QT/VC学习交流群) 海量学习资料都分享在群里指点学习方向,掌握学习要点,快速提高技术水平, 技术分享,共同学习!
    Processed: 0.010, SQL: 8