相关疑难解决方法(0)

为什么以及何时需要双指针?

我一生中大部分时间都是系统管理员,但最近决定练习一些我的开发知识并尝试一个devop位置.我一直在练习一些C和Python技能,并编写了一些代码,用于在链表中插入一个数字.

void list_insert(struct list *h, int d)
{
        struct list *elem = malloc(sizeof(struct list));

        elem->data = d;
        elem->next = NULL;

        if (!h) {
                h = elem;
        } else {
                elem->next = h;
                h = elem;
        }
}           
Run Code Online (Sandbox Code Playgroud)

我注意到这个函数似乎没有改变变量h的外部视图(即传递给list_insert的任何东西),我注意到插入函数末尾的打印似乎有效.所以试图在网上寻找答案,我找不到任何东西,显而易见但我发现大多数列表实现都会有双指针.我改变了我的功能以使用双指针,然后它突然开始工作.有人可以帮助我理解这里发生了什么,因为我知道指针管理是一个重要的概念,我想我理解指针是什么以及它与内存的关系,但我不认为我明白为什么单个指针不会被改变,而双指针确实如此.

谢谢!

c pointers linked-list

1
推荐指数
1
解决办法
1103
查看次数

标签 统计

c ×1

linked-list ×1

pointers ×1