这是关于在将 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
谁能解释一下发生这种情况的原因?