заявление if — Почему я получаю этот вывод в C ++? Объясните логику

#include <stdio.h>
#include <iostream>
int main()
{
if(NULL)
std::cout<<"hello";
else
std::cout<<"world";
return 0;
}

Вывод на вышеупомянутый вопрос:

Мир

Пожалуйста, объясните мне, почему я получаю этот вывод. Я не могу получить удовлетворительный ответ даже после обращения к нескольким различным источникам.

-5

Решение

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 приводит к ложному, условие if не выполняется, поэтому тело оператора if не выполняется. В результате выполняется тело оператора else, которое объясняет вывод, который вы видите.


PS: Правильный способ определения NULL и NULL_POINTER?

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]