当前位置:首页 » 参考文献 » 指针引用参数

指针引用参数

发布时间: 2021-03-24 04:31:18

㈠ 指针与引用的区别,引用作为函数参数时的用法

指针灵活一点,引用方便一点。
引用作为参数时,我举个例子给你
void fun(int &iNum)
{
iNum = 1;
}
int main()
{
int iNum = 0;
fun(iNum)
return 0;
}
最后内输出的结果容iNum 为1而不是0

㈡ 指针引用作参数和指针做参数的区别

楼上的没说全,你都知道引用是别名,那就应该知道在函数内部可以修改rp指向的地址,以前指向的是a,你可以把他改成指向b;传指针是传入参数的一份拷贝,在函数内部修改指针指向的地址,并不会修改原实参所指向的地址。可以写一个简单的程序测试下,在函数内部修改形参所指向的地址,调用完成后,看看实参指向的地址是否改变!传指针不会改变,传引用的会!动手实验下,记得更劳靠!

㈢ 什么时候该用指针参数 什么时候该用引用参数

这个问来题不太容易严格区分,不过自可以简单说一下。

指针:大家都知道,指向一个内存地址。但同时请注意一个东东,就是指针的步长(我叫它步长)其实就是指针的类型。C/C++中,类型转换对于指针来说同样适用,也就是可以改变步长。所以它比较特别,灵活性很大。更特别的一点是:它可以什么也不指向,就对着NULL/0。

引用:它的局限性要大很多,它只是一个对象的别名。这个别名的意思就是“它是依赖别的对象存在现而存在,它不会独立存在!”。所以请特别注意,引用必须指向一个已经存在的对象,不可以凭空存在。

明显的区别:
指针不依赖于对象的存在而存在,就是可以“凭空存在”;而引用不能“凭空存在”,必定指向一个对象。

一般来说,能用引用的地方,用指针也可以。但是指针太灵活(它可以指向NULL),然而如果此时提取指针对象就会出现“不明确行为”的严重错误。然而用引用就不会出现这样的错误,因为引用必须指向一个已经存在的对象,它不会为空。

想说也就是这么多了,希望你多多使用就能多多体会了。

㈣ 什么时候用指针形参什么时候用引用形参

标准 C 中是没有引用形参的,只能使用指针形参。
C++ 引入指针形参是为了降低指针灵活性带来的风险,指针形参不仅可以将数据的引用传入函数,还可以在函数内改变这个指针,也就是说在函数内部可以改变调用域的变量(而不仅仅是对象)。
相比起引用,指针有这些特点:
指针变量可以被重复赋值或更改(引用则不行,一经赋值不能再改)
指针变量可以为空(引用必须指向具体对象)
如果你用不到这些特性反而觉得它们会带来麻烦,而且可以接受非 Pure C(例如不需要支持 Objective-C 等其他 C 的超集),那么就用引用参数吧,甚至还可以在需要的情况下加 const 进一步约束。

㈤ c++中的 引用型指针参数如 (类名 *& 变量名),这是怎么用的该如何理解

指针的引用,指针它也是一个变量,*&就和普通变量的引用一样,也可以理解为指针变量专的别名。如int*& a,那么属在函数里面对a的值进行改变,那么在调用函数时传入的参数的指针值也会改变

再实际点的例子,void*& fun(int*& a);调用时,有一个指针int* pointer = NULL;,然后fun(pointer),在fun里面对a重新赋值,a = &other,那样子外面pointer的值也就变成了&other

㈥ 形参实参,指针引用

如果HL是指针则:

定义时
void InitList(LNode &HL)
应该这么用
InitList(*HL);
注意上面的*不是表专示指针,而是表示取HL所指向的内容属。

定义时
void InitList(LNode *HL)
则应该这么用
InitList(HL);

但这只是单纯的从语法来回答你的问题的,对于你这个函数,我想函数的意图是初始化一个链表,并且头结点HL初始为NULL。
那么你这里的参数HL就必须是个指针的引用或指针的指针了。
否则
void InitList(LNode &HL)
的形式调用InitList(*HL)时会报错(访问无效地址)
void InitList(LNode *HL)
的形式调用InitList(HL)时HL还是会为NULL(值传递,头结点没有返回出来),而产生内存泄漏。

㈦ 指向指针的指针和指针的引用做函数参数怎样理解,求大神解释。

你的问题本质就是指针和引用的区别,请参考以下链接
http://..com/question/1638411952021780300.html?oldq=1

只不过,你的问题中,被指针指向和引用的是另一个指针变量。假设指针的指针为pp,指针的引用为r,而被指向的指针为p,则:

int a;//目标整数变量
int *p=&a;//一级指针
int **pp=&p;//二级指针
int &R=&p;//指针的引用

他们的关系用逻辑符号表示为:
pp->p->a(PP的值为p的地址,p的值为a的地址,即pp指向p,p指向a,PP本身也需要占用内存空间,所以PP也有自己的地址)
R=p->a(R引用p的地址,p的值为a的地址,即R是p的别名,p指向a,其中R的值就是p的地址,R本身不需要占用内存空间,也就没有自己的地址)

因此,引用和指针变量的区别是,引用本身不占用内存空间,指针变量需要占用内存空间(凡是变量都需要占用内存空间,凡是占用内存空间必然有地址)。
如还不明白可以追问。

㈧ C++中使用指针、引用进行参数传递

这是经典的C++问题
1、常规情况
函数参数传递是所谓的“值传递”。啥意思,就是传的只是值,而不是变量自己以身相许。上面的例子来说,main中的ab传递给函数的ab发生了什么呢,是main中的ab把值传递给了函数的ab,这是四个变量!!!main的ab和swap的ab不是一码事!!!当swap通过传值得到a5b10后,在swap中会互换,但是main的中的ab怎么会变呢?他们传值完毕后就没有关系了!
2、引用
什么叫引用?引用时变量的别名,也就是引用不是一个独立的变量,只能依附于其他变量。你的例子中swap中没有ab两个变量,只有main中ab的两个别名,只是别名碰巧也叫ab。在swap中对swap的ab的任何操作,本质上操作的都是main的ab!想想一下一个人在mian中叫张三,脸上有胡子。他的小名叫狗剩。在swap中我们说,吧狗剩的胡子刮了。然后回到main中,张三同学的额胡子有没有?当然没有了
3、指针
指针存放对象的地址。在你的例子中,swap中的ab和main中的ab的关系式,swap是mian中ab的地址。想想一下,mian中的ab地址为AB,在swap中我们说吧A地址的家伙变为100,B地址的变为1000.请问mian中变了没有?当然会变!!

这个问题关键是理解第一个部分,swap中的ab和mian中的ab是独立的四个变量

㈨ 指针能作为引用参数吗

可以,你可以声明类似的函数原型
void fun(int *& p);
p绑定为另一个int指针(本尊)的引用,改变p的值,也会改变本尊的值。

㈩ c++ 函数参数,指针和引用

1、常规情况
函数参数传递是所谓的“值传递”。啥意思,就是传的只是值,而不是变量自己以身相许。上面的例子来说,main中的ab传递给函数的ab发生了什么呢,是main中的ab把值传递给了函数的ab,这是四个变量!!!main的ab和swap的ab不是一码事!!!当swap通过传值得到a5b10后,在swap中会互换,但是main的中的ab怎么会变呢?他们传值完毕后就没有关系了!
2、引用
什么叫引用?引用时变量的别名,也就是引用不是一个独立的变量,只能依附于其他变量。你的例子中swap中没有ab两个变量,只有main中ab的两个别名,只是别名碰巧也叫ab。在swap中对swap的ab的任何操作,本质上操作的都是main的ab!想想一下一个人在mian中叫张三,脸上有胡子。他的小名叫狗剩。在swap中我们说,吧狗剩的胡子刮了。然后回到main中,张三同学的胡子有没有?当然没有了
3、指针
指针存放对象的地址。在你的例子中,swap中的ab和main中的ab的关系式,swap是mian中ab的地址。想想一下,mian中的ab地址为AB,在swap中我们说吧A地址的家伙变为100,B地址的变为1000.请问mian中变了没有?当然会变!!

热点内容
涂鸦论文 发布:2021-03-31 13:04:48 浏览:698
手机数据库应用 发布:2021-03-31 13:04:28 浏览:353
版面217 发布:2021-03-31 13:04:18 浏览:587
知网不查的资源 发布:2021-03-31 13:03:43 浏览:713
基金赎回参考 发布:2021-03-31 13:02:08 浏览:489
悬疑故事范文 发布:2021-03-31 13:02:07 浏览:87
做简单的自我介绍范文 发布:2021-03-31 13:01:48 浏览:537
战略地图参考 发布:2021-03-31 13:01:09 浏览:463
收支模板 发布:2021-03-31 13:00:43 浏览:17
电气学术会议 发布:2021-03-31 13:00:32 浏览:731