Strct name{
int a;
Struct name *b ;
}
Struct nane *p;
p里是谁的地址
p只定义了,还没赋值,里面是个随机数,不是任何变量的地址,也不是NULL,就是传说中的野指针
你直接访问它就会造成指针越界,读取出来会是一堆乱码,而如果写入则会造成访问冲突,抛出异常
p 是它所指向的结构体变量的地址,供参考:
#include <stdio.h>
struct name { //结构体数据类型定义
int a;
struct name* p;
};
int main()
{
struct name temp; // 定义一个结构体变量 temp
temp.a = 9; //将结构体变量 temp 的成员 a 赋值为 9
temp.p = &temp; //将结构体变量 temp 的指针成员 p 指向结构体变量 temp 自身地址
printf("%d %p %p", temp.p->a, &temp, temp.p->p);//通过结构体变量的指针成员 temp.p 访问结构体变量的成员 a
return 0;
}
就是第一个变量a的地址
这里的p还只是一个指针,要指向一个确切的参数,才能得到地址。这时候还是一个空地址(NULL)。
这个p不指向谁,因为没有赋值,但它是专门指向struct name这个类型的结构体的。
指向一个 nane 型数据,但在赋值之前,没有具体的值
不知道你这个问题是否已经解决, 如果还没有解决的话: