NULL
results in a false condition. You could imagine that NULL
is a 0, so this:
if(NULL)
would be equivalent to this:
if(0)
thus your code would become:
#include <stdio.h>
#include <iostream>
int main()
{
if(0)
std::cout<<"hello";
else
std::cout<<"world";
return 0;
}
where is obvious that because 0 results to false, the if condition is not satisfied, thus the body of the if-statement is not executed. As a result, the body of the else-statement is executed, which explains the output you see.
PS: Correct way of defining NULL and NULL_POINTER?
solved Why am I getting this output in C++? Explain the logic