第三个空为什么不是取p指针的地址

答案是np为什么最后一条汇编指令是把p指针的地址送给⭐next对吧,然后p指针指向x的地址。如果想指向np的话我觉得应该要把p指针本身送给next。

img

p指针用于访问结构体内的x变量
np中的next指针是用于指向下一个node的
因为np本身就是一个指针,所以直接把np的地址值赋值给np->next即可

1)p和next是地址,各占4字节,x和y各占4字节,总共16字节;成员p、s.x、s.y、和next的偏移地址分别为0、4、8、12。

(2)

movl 8(%ebp), %eax //R[eax] = np

movl 8(%eax), %edx //R[edx] = np->s.y

movl %edx, 4(%eax) //np->s.x = np->s.y

leal 4(%eax), %edx //R[edx] = np + 4

movl %edx, (%eax) //np->p = np + 4 = &(np->s.x)

movl %eax, 12(%eax) //np->next= np


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

指针本身就是地址,不需要加&符号。