小写null在C ++中是否有效?

Top*_*ter 2 c++ standards c++-standard-library

我在一次采访中被问到“以下哪些指针初始化有效?”,然后我填写了以下表格:

// valid
    int* p1 = 0;
    int* p2 = 2-2;
    int* p6 = new int;
// invalid
    int* p3 = 1; 

    int z = 0;
    int* p4 = z;
// ???
    int* p5 = null;
Run Code Online (Sandbox Code Playgroud)

我的问题:nullC ++语言规范的任何版本中都有小写字母吗?

Nik*_* C. 15

nullC ++语言规范的任何版本中都有小写字母吗?

没有。

  • 好吧,是的。 (4认同)
  • @ Top-Master是的,这需要证明是否定的。此处缺少的证据是C ++标准中没有任何部分提及“ null”作为有效令牌。因此,实际上,“不”几乎是IMO的完美答案。:-) (4认同)

Chr*_*cob 7

一个字的答案将是“否”。

试试下面的代码

  #include <iostream>
#include <stdlib.h>
using namespace std;
int main(){
    int *p = null;
    int *q = NULL;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这给出了以下编译错误:

错误:在此范围内未声明“ null”

这是不言自明的。