在任何版本的null语言规范中是否有小写的C++?
背景:
在一次采访中,有人问我“下列哪个指针初始化是有效的?”,我填写了如下表格:
// 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;发布于 2019-06-19 06:36:56
在任何版本的
null语言规范中是否有小写的C++?
不是的。
发布于 2019-06-19 06:45:05
一个词的回答是否定的。
试试下面的代码
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(){
int *p = null;
int *q = NULL;
return 0;
}这给编译带来了以下错误:
错误:“null”未在此范围内声明
这是不言而喻的。
发布于 2019-06-19 07:05:58
答案写在一些头文件中。NULL是那些头文件(如** )中预定义的宏。
-> #定义NULL 0
**。因此,我们只能用大写"NULL“来定义,以避免编译终止。
但是,如果希望小写为null,则可以通过在头文件中定义新宏或在预定义宏中进行收费。但是在你想要做这些改变之前要小心。
https://stackoverflow.com/questions/56661378
复制相似问题