为什么我在 C++ 中得到这个输出?解释逻辑
Why am I getting this output in C++? Explain the logic
#include <stdio.h>
#include <iostream>
int main()
{
if(NULL)
std::cout<<"hello";
else
std::cout<<"world";
return 0;
}
上述问题的输出是:
世界
请解释一下为什么我会得到这个输出。我参考了几个不同的来源也无法得到满意的答案。
NULL
导致错误条件。你可以想象 NULL
是一个 0,所以这个:
if(NULL)
相当于:
if(0)
因此您的代码将变为:
#include <stdio.h>
#include <iostream>
int main()
{
if(0)
std::cout<<"hello";
else
std::cout<<"world";
return 0;
}
这里很明显,因为0结果为false,所以if条件不满足,因此if语句的主体没有被执行。结果,执行了 else 语句的主体,这解释了您看到的输出。
PS: Correct way of defining NULL and NULL_POINTER?
#include <stdio.h>
#include <iostream>
int main()
{
if(NULL)
std::cout<<"hello";
else
std::cout<<"world";
return 0;
}
上述问题的输出是:
世界
请解释一下为什么我会得到这个输出。我参考了几个不同的来源也无法得到满意的答案。
NULL
导致错误条件。你可以想象 NULL
是一个 0,所以这个:
if(NULL)
相当于:
if(0)
因此您的代码将变为:
#include <stdio.h>
#include <iostream>
int main()
{
if(0)
std::cout<<"hello";
else
std::cout<<"world";
return 0;
}
这里很明显,因为0结果为false,所以if条件不满足,因此if语句的主体没有被执行。结果,执行了 else 语句的主体,这解释了您看到的输出。
PS: Correct way of defining NULL and NULL_POINTER?