Pointers 指向struct的指针-几个问题 #包括 #包括 /*链接列表节点*/ 结构节点 { int数据; 结构节点*下一步; }; /*函数可反转链接列表*/ 静态无效反向(结构节点**头部\u参考) { 结构节点*prev=NULL; 结构节点*current=*head\u ref; 结构节点*下一步; while(当前!=NULL) { 下一步=当前->下一步; 当前->下一步=上一步; prev=当前值; 当前=下一个; } *head_ref=上一个; } 反向函数中以struct开头的行负责什么? 他们是扩展原始结构还是创建原始结构指向的新结构?我真的不明白为什么原始结构没有名字 struct node*next之间是否存在差异和结构节点*next

Pointers 指向struct的指针-几个问题 #包括 #包括 /*链接列表节点*/ 结构节点 { int数据; 结构节点*下一步; }; /*函数可反转链接列表*/ 静态无效反向(结构节点**头部\u参考) { 结构节点*prev=NULL; 结构节点*current=*head\u ref; 结构节点*下一步; while(当前!=NULL) { 下一步=当前->下一步; 当前->下一步=上一步; prev=当前值; 当前=下一个; } *head_ref=上一个; } 反向函数中以struct开头的行负责什么? 他们是扩展原始结构还是创建原始结构指向的新结构?我真的不明白为什么原始结构没有名字 struct node*next之间是否存在差异和结构节点*next,pointers,struct,Pointers,Struct,行struct node*prev是“指向结构节点的指针”类型的变量prev的声明。这些行只声明了一些局部变量prev包含指向上次处理节点的指针,current包含指向当前处理节点的指针,next用于保存指向原始列表下一个节点的指针 struct node*next和struct node*next之间没有区别 @威利斯是对的。正如我们所知,struts是一组相似和不相似的数据类型。当struct被创建时,它分配一块内存。内存有一个地址 #include<stdio.h> #incl

struct node*prev
是“指向结构节点的指针”类型的变量
prev
的声明。这些行只声明了一些局部变量
prev
包含指向上次处理节点的指针,
current
包含指向当前处理节点的指针,
next
用于保存指向原始列表下一个节点的指针

  • struct node*next
    struct node*next
    之间没有区别


  • @威利斯是对的。正如我们所知,struts是一组相似和不相似的数据类型。当struct被创建时,它分配一块内存。内存有一个地址

    #include<stdio.h>
    #include<stdlib.h>
    
    /* Link list node */
    struct node
    {
        int data;
        struct node *next;
    };
    
    /* Function to reverse the linked list */
    static void reverse(struct node** head_ref)
    {
        struct node *prev   = NULL;
        struct node *current = *head_ref;
        struct node *next;
        while (current != NULL)
        {
            next  = current->next; 
            current->next = prev;  
            prev = current;
            current = next;
        }
        *head_ref = prev;
    }
    
    上述结构分配一块内存。在该块中存储着3个不同的数据(年龄、名称和结构
    节点的地址

    当您想要存储更多的块(用于存储更多数据)时,您需要分配更多的结构。但是,当所有结构都分配到内存中时,存在一个问题,它们之间没有任何关系。这是内存泄漏的一个原因

    因此,在分配的每个内存块上保留地址字段,以便任何内存块都可以存储其最近的块的地址


    它是链表的真正风格值。因此,结构的名称没有混淆。

    谢谢。为什么我需要
    int数据在结构内部?那是保存数据的地方吗?如果是,怎么做?在结构旁边的代码中我看不到任何对数据的引用。是的,节点包含保存实际信息的字段
    data
    ,以及指向列表中下一个节点的指针的字段
    next
    struct node{
        int age;
        char name[20];
        struct node *next_address; //Address of its type (self referential structure)
    }