dev编译器编译显示3个不同地址
vc++编译显示3个相同地址
按理说是3个相同的地址吧?
代码如下:
#include <stdio.h>
main()
{
typedef struct Node{
int a;
struct Node* next;
}Node;
Node * pt2;
Node * pt1;
Node * pt3;
printf("%p ", pt1);
printf("%p ", pt2);
printf("%p", pt3);
}
没有初始化,一切皆有可能
你只是定义了3个同类型结构体指针,并没有让它们指向同一个结构体,你理解有误吧。
Node * pt2; 意为创建一个结构体指针,pt2,pt3也是结构体指针,并且它们都没有初始化值,野指针。因此它们的值不相同。
Node obj;
pt2 = &obj;
pt2 = &obj;
此时它们的地址相同。