これは、C ++のポインターをNULLと比較する際の、ポインターに関する小さな混乱に関するものです。コードは次のとおりです。
struct node
{
int data;
struct node *left;
struct node *right;
}
int main()
{
struct node *p;
if(p!= NULL)
printf("line1\n");
else
printf("line2\n");
struct node *temp;
if(temp == NULL)
printf("line3\n");
}
出力:
line2
line3
次のコードの場合:
struct node
{
int data;
struct node *left;
struct node *right;
}
int main()
{
struct node *p;
if(p!= NULL)
printf("line1\n");
else
printf("line2\n");
struct node *temp;
}
これは出力です:
line1
誰かがそのような発生の理由を説明できますか?