小写 null 在 C++ 中有效吗?
Is lowercase null valid in C++?
在任何版本的 C++ 语言规范中是否有小写 null
?
背景:
我在面试中被问到 "Which of the following pointer initializations are valid?",我填写了如下表格:
// 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;
Is there any lowercase null
in any version of the C++ language specification?
没有
一个词的答案是否定的。
试试下面的代码
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(){
int *p = null;
int *q = NULL;
return 0;
}
编译时出现以下错误:
错误:“null”未在此范围内声明
这是不言自明的。
答案写在一些头文件中。 NULL是那些头文件中预定义的宏如**
-> #define NULL 0
**。因此我们只能用大写的"NULL"来定义以避免编译终止。
但是,如果您希望小写null,您可以通过定义新的宏或在头文件中的预定义宏中收费来实现。但在进行这些更改之前要小心。
在任何版本的 C++ 语言规范中是否有小写 null
?
背景:
我在面试中被问到 "Which of the following pointer initializations are valid?",我填写了如下表格:
// 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;
Is there any lowercase
null
in any version of the C++ language specification?
没有
一个词的答案是否定的。
试试下面的代码
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(){
int *p = null;
int *q = NULL;
return 0;
}
编译时出现以下错误:
错误:“null”未在此范围内声明
这是不言自明的。
答案写在一些头文件中。 NULL是那些头文件中预定义的宏如**
-> #define NULL 0
**。因此我们只能用大写的"NULL"来定义以避免编译终止。
但是,如果您希望小写null,您可以通过定义新的宏或在头文件中的预定义宏中收费来实现。但在进行这些更改之前要小心。