昨天我正在面试一个中级软件工程职位的人,他提到在C中,NULL并不总是零,并且他已经看到了C的实现,其中NULL不为零.我觉得这很可疑,但我想确定.谁知道他是对的?
(回复不会影响我对这位候选人的判断,我已将决定提交给我的经理.)
我有三个LPCWSTR字符串变量叫A,B,C.
我从另一个函数中分配它们,nullptr如果出现问题,有时可以返回.像这样:
A = MyFunc();
B = MyFunc();
C = MyFunc();
Run Code Online (Sandbox Code Playgroud)
现在,对于那些带有这些变量的东西,我需要检查这些变量中是否只有一个变量nullptr(只分配了一个变量).
我自己尝试这样做:
if ((A == nullptr) && (B == nullptr) && (C <> nullptr)) {}
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何想法都是受欢迎的
我正在将程序从C移植到C++,包括以下代码:
char* get_file_extension(const char* file_name)
{
char* e = strrchr((char*) file_name, '.');
if (e == NULL)
{
char* buf = strdup(file_name);
return buf;
}
return e + 1;
}
Run Code Online (Sandbox Code Playgroud)
假设我只是将编译器更改为c ++ 11,在这种情况下将NULL更改为nullptr是否足够?目前strrchr来自包含头文件string.h,所以我担心如果strrchr返回NULL而不是nullptr并且if(e == nullptr)检查失败.
或者我应该将string.h更改为cstring?