2017-08-20 9 views
-5
#include <stdio.h> 
#include <iostream> 
int main() 
{ 
    if(NULL) 
    std::cout<<"hello"; 
    else 
    std::cout<<"world"; 
    return 0; 
} 

を説明している:なぜこの出力をC++で得るのですか?上記の質問への出力ロジックに

世界

親切に、なぜ私はこの出力を取得しています私に説明しています。私はいくつかの異なる情報源を参照した後でも満足のいく答えを得ることができません。

+4

NULL == 0 ==偽(==の所与の定義について)。したがってif文は 'if(false)'となります。 –

+0

私はC++を学んでいますが、どこかでNULLと0が違うと読んでいます。だから、私は少し混乱しています。 –

+0

http://en.cppreference.com/w/cpp/types/NULL –

答えて

1

NULLは偽の状態になります。

if(NULL) 

これに相当します:

if(0) 

ので、あなたのコードになるでしょう:

#include <stdio.h> 
#include <iostream> 
int main() 
{ 
    if(0) 
    std::cout<<"hello"; 
    else 
    std::cout<<"world"; 
    return 0; 
} 
理由が明らかである

あなたはNULLが0であるので、これがことを想像できます0の結果がfalseの場合、if条件が満たされないため、if文の本体は実行されません。その結果、else文の本体が実行され、出力が表示されます。


PS:Correct way of defining NULL and NULL_POINTER?

関連する問題