指针的引用作为函数参数有啥用?
来源:互联网 发布:mac制作铃声的教程 编辑:程序博客网 时间:2024/05/29 17:45
一句话总结
用指针的引用作为某函数的参数来传递,其目的就是为了在这个函数里面改变该指针的值(就是改变指针所指向的对象)。
转载:
2011-03-11 16:43海相连 | 分类:其他编程语言 | 浏览5242次
今天看数据结构,有一个建链表函数调用void InitList(sNode*&HL){ HL=NULL;}难道这是指针引用??????不是用指针就行了么,为什么还要加上一个引用符号,请明示下,谢谢。。。
2011-03-11 16:47提问者采纳
单独指针只是传递的指针的值,指针形参的变化与调用的实参无关,只有用指针的引用才能将函数体内的初始化值传递回去
- 追问
能不能详细点,不是很懂。。单独指针不也能改变原实参的值么,,指针引用也可以,作用不都是一样的么???
- 回答
1、所谓传递指针,只是传递指针的值的意思就是这样:如果有变量a,传递进去的是a的地址,注意这个值是复制给了函数体内的形参,在函数体内可以通过这个地址绕回来修改a的内容,即使修改了函数体内的形参,但是并不能就因此修改a的地址2、所谓引用从原则而言,则是变量自己,当然在函数体内修改就会作用到原来的变量上,具体设计到引用的实现也可以是指针。你的要求是在函数体内修改一个指针变量的值,依照上面的原则,必须要传递该指针变量的地址(或者指针变量自己)才可以在函数体内间接(引用可以说是直接)修改该指针变量的值,所以只有传递指针的指针(或者指针的引用)才行
- 追问
嗯,,谢谢哈,经过你的提醒,我再回去翻书的时候才发现,原来是我自己没看清楚,原来就是要修改一个指针的地址啊,怪不得用了二级指针。。你掌握的真扎实,佩服。。现在知道了,可是能说说*&与**的区别么???
- 回答
你的理解还是不太精确啊,不是要修改指针的地址,而是要通过其存储地址来间接修改其值*&自然就是指针的引用,概念上说自然就是指针的别名啦,当然编译程序具体实现是可以用二重指针的**自然是指针的指针,用于存放指针的地址,当然,函数体内是可以通过二重指针来间接修改函数外指针的值的
- 提问者评价
谢谢!
0 0
- 指针的引用作为函数参数有啥用?
- 指针作为函数的参数,引用作为函数的参数
- C++指针,引用,常引用作为函数的参数
- C指针作为函数参数引用
- 指针和引用作为函数传递参数
- 作为函数参数的指针
- 指针作为函数的参数
- 作为函数参数的指针
- 指针和引用作为参数的区别
- 引用作为函数参数
- 引用作为函数参数
- 函数指针作为函数的参数
- 函数指针作为某个函数的参数
- 函数指针作为某个函数的参数
- 函数指针作为某个函数的参数
- 函数指针作为函数的参数
- 指针作为函数参数
- 指针作为函数参数
- 设计模式(4)——外观模式
- 一篇写的比较简单的A*寻路算法(转)
- 设计模式(5)——模板方法
- WIN32微秒级计时方法
- 学拳录.第1势 预备势
- 指针的引用作为函数参数有啥用?
- 一些常用的 linux 命令模板
- 设计模式(6)——适配器模式
- C,C++表达式求值顺序
- vc助手 Visual Assist X 10.8.2007的Crack破解补丁.支持VS2013 RTM. 2013.11.15 (General release.)
- 设计模式(7)——观察者模式
- SQL中PIVOT的用法
- 数据库
- 1070. Mooncake (25)