gpt4 book ai didi

c - 在同一结构内具有指向自身的指针的结构

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:10 26 4
gpt4 key购买 nike

在这个程序中,我有一个结构节点。结构节点内还有另一个链接指针。谁能解释一下这个链接指针是如何工作的。编译器在运行时对这个代码片段做了什么。结构指针转换了什么到。请向我解释机器级别发生了什么。如果这是一个愚蠢的问题,请原谅。我对此完全感到困惑。

#include<stdio.h>
struct node{
int data;
struct node *link;
}*top=NULL;

void main(){

}

这是我运行 gcc -S 时的汇编代码

    .file   "test.c"
.globl top
.bss
.align 8
.type top, @object
.size top, 8
top:
.zero 8
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
nop
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609"
.section .note.GNU-stack,"",@progbits

最佳答案

它不是指向它自己的指针。它是指向同一类型的另一个对象的指针(当然也可以通过对封闭对象的引用来分配它)。当一个对象持有对另一个对象的引用时,这用于创建链表。

关于c - 在同一结构内具有指向自身的指针的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56311841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com