嵌入式学习小组
直播中

李亦然

7年用户 186经验值
私信 关注

请问结构体指针变量 *a这个a和&a有啥区别?

比如结构体变量a,那么&a是代表a中第一个成员的地址吗,变量名字a也可以代表地址吗


还有一个问题,结构体指针变量 *a    这个a和&a是啥区别

回帖(8)

李泓翔

2019-4-4 12:00:38
结构体在声明的时候,就分配了空间。结构体和数组不同,结构体类型的变量名并不能直接当作地址使用,这一点和基本数据类型相同。需要对结构体名使用取址符&才能进行地址操作,并且取址所得到地址代表的是指向结构体的指针,只是在数据上和结构体中的首元素地址相同。
举报

张博

2019-4-4 12:15:42
云汉达人
&a 是结构体  a 的取址操作,地址指向 a,因为结构体 a 的首地址,和结构体 a 中首个变量的地址一样,所以&a 等于 a中第一个成员的地址,也等于 a 的首地址,

变量名a不代表地址



*a 的 a 是个指针,程序不会自动为 a 结构体分配空间,只存在一个指针变量
&a 是 变量a 的取址操作。
举报

张建

2019-4-4 12:30:44
&a是结构体变量指针,a就是结构体变量
举报

刘悌耀

2019-4-4 12:41:56
&a就是取a起始的地址,*a是取那个地址处一个变量的值
举报

更多回帖

发帖
×
20
完善资料,
赚取积分