C语言的NULL和C++的NULL不同

来源:互联网 发布:windows美化大师电脑 编辑:程序博客网 时间:2024/05/01 13:31
    在C语言中,讲一个指针置为空指针,只需要让其等于NULL或者0就行。C语言诞生的初期,常数 0 带有常数及空指针的双重身分。 C 使用 preprocessor macro NULL 表示空指针, 让 NULL 及 0 分别代表空指针及常数 0。 NULL 可被定义为 ((void*)0) 或是 0。
    在C++中,NULL的功能被弱化,仅仅代表0。C++11 引入了新的关键字来代表空指针常数:nullptr,将空指针和整数 0 的概念拆开。nullptr 的类型为nullptr_t,能隐式转换为任何指针或是成员指针的类型,也能和它们进行相等或不等的比较。 而nullptr不能隐式转换为整数,也不能和整数做比较。
0 0