用以下的代码作为示例,解释。

struct Node* head = NULL;
void push(struct Node** head_ref, int new_data)
{/* allocate node */struct Node* new_node = new Node();/* put in the data */new_node->data = new_data;/* link the old list off the new node */ new_node->next = (*head_ref);/* move the head to point to the new node */(*head_ref) = new_node;
}
在这里每次修改的都是指针指向的地址。1)在函数里想要修改外部一个变量的值,实参是通过引用传递,也就是传地址,传的是变量的地址。
形参的接收方式
eg :int modify(int * i)2)在函数里想要修改一个指针时,那么也通过引用传递, 还是传地址,只是在这里,传递的是一个指向指针的地址。

总结: 在上面的代码中,在Push节点时, *head_ref 都要改变,所以形参接收的是指向指针的地址。

链表头指针head要设为**head,而不是*head相关推荐

  1. Linux内核链表访问链表头指针,linux内核——链表结构分析

    http://blog.csdn.net/tigerjibo/article/details/8299584 简单整理(使用linux3.0内核) 这里首先学习的是内核中一种抽象定义的双向链表,为了提 ...

  2. 剑指offer:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。

    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后为 1-& ...

  3. 如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,求这个队列中从队列投到队列尾的元素个数(包含队列头、队列尾)。

    #include <iostream> using namespace std;//循环队列(少用一个空间)长度 #define M (8+1)typedef struct node {i ...

  4. 以下这段程序将单链表逆转。(单链表不带有空头结点,链表头指针是head)例如,链表 1 -> 2 -> 3 -> 4 逆转后变为 4 -> 3 -> 2 -> 1 .

    struct Node**phead *phead oldHead->next newHead tmp &head #include <stdio.h> #include & ...

  5. 单循环链表中设置尾指针比设置头指针更好的原因

    尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便. 设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next ...

  6. 链表、头指针、头结点

    图1为线性表(ZHAO, QIAN, SUN, LI, ZHOU, WU, ZHENG, WANG)的逻辑状态.头指针 指示链表中第一个结点(即第一个数据元素的存储映像)的存储位置.同时,由于最后一个 ...

  7. C++之链表中头指针、头节点、首元结点的

    头指针:顾名思义是一个指针,指向链表的开始地址: 头结点:第一个节点,该节点只有地址信息,改地址指向下一个结点,数据域无信息: 首元结点:含第一个元素的结点,为链表的实际开始位置,数据域包含第一个数据 ...

  8. Leetcode题库203.移除链表元素(尾指针填充 / 虚头指针定义 c实现)

    文章目录 思路 方法1 方法2 代码 方法1 思路 方法1 下面提供了方法1的代码,可供参考 ret指针做返回链表的头指针,last做返回链表的尾指针 第一步:找头 使用指针p遍历链表,找到第一个va ...

  9. 头指针为head的带头结点的单链表判空条件head->next==null?

    由于考研需求,又乖乖滚回来捧起数据结构了,一年没碰书,忘得都差不多了,还得捡回来,哭死了. 进入正题,为何头指针为head的带头结点的单链表判空条件head->next==null?其实一开始这 ...

最新文章

  1. 技术图文:如何利用 C# 实现 误差反向传播 学习规则?
  2. IT人为了自己父母和家庭,更得注意自己的身体和心理健康
  3. 核心概念——节点分组 Group
  4. 将shell命令结果直接输出到HDFS上
  5. html boot设置列宽,html - Bootstrap 4:设置列宽固定位置内容的宽度 - SO中文参考 - www.soinside.com...
  6. php程序内存空间,php如何管理内存
  7. ZZULIOJ 1125: 上三角矩阵的判断
  8. adsense三种广告要屏蔽
  9. netty源码阅读之UnpooledByteBufAllocator
  10. 网易公开课 IPHONE开发
  11. Windows系统下的Git安装教程
  12. 计算机主机内有的硬件有哪些,电脑主机内有哪些硬件
  13. 生成二维码与条形码的各种方法
  14. 微光集市-JWT和Token在本项目中的应用(版本5.0)
  15. OneDrive无法打开登陆怎么办
  16. 嵌入式开发专业术语概念汇总
  17. spring 事务提交成功后,再去发送事件
  18. 解决Windows Explorer 奇怪的卡顿问题
  19. 百度开源项目BFE-BFE总览
  20. 电脑属性,如何设置电脑的属性?【新手必读】

热门文章

  1. Linux下的SQL查询只显示结果,SQL查询语句精华文章(转)
  2. vue 下拉框点击没有反应
  3. linux常用命令-删除空目录rmdir
  4. Maya 贴图链接检测重链打包插件tjh_lost_textures_finder 1.3.1 更新发布!
  5. mysql中的存储引擎
  6. 【轉】學習下AutoCad的快速繪圖,也許能借鑒到Protel,OrCad等軟件中來
  7. 鼠标右键失灵 解决鼠标右键失灵方法
  8. Vue如何实现时间轴
  9. c语言strcpy函数的规范写法
  10. linux命令userdel,linux命令:userdel