社区
C++ 语言
帖子详情
关于对象引用作函数参数的问题
monking007
2003-08-07 04:03:08
对象引用作函数参数和用指针作函数参数的区别是什么
还有他与一般的对象作参数有什么区别
请赐教
最好有实例
...全文
54
6
打赏
收藏
关于对象引用作函数参数的问题
对象引用作函数参数和用指针作函数参数的区别是什么 还有他与一般的对象作参数有什么区别 请赐教 最好有实例
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dddd8888
2003-08-07
打赏
举报
回复
对于函数参数来说:引用和指针功能一样,但却可像传值一样的操作
特别是传二级指针时,用 int& *p 传值更美观
0083gundam
2003-08-07
打赏
举报
回复
谢谢了,我正在被引用搞得头大呢。^_^
cdqy
2003-08-07
打赏
举报
回复
对于函数参数来说:引用和指针功能一样,但却可像传值一样的操作.
kaitree
2003-08-07
打赏
举报
回复
初始化以后的引用是无法改变的,死心塌地的做自己老大的假名用。^_^
Jinhao
2003-08-07
打赏
举报
回复
如果用对象作参数,情况就是这样
void fun1(int a)
{
a=15;
}
int i=10;
fun1(i);
cout<<i;//输出的i还是10,因为i把值穿给fun1()时,其实是在fun1()里创建了个对象a,并用i去初始化a,所以a=15,并没有改变i这个对象。当退出函数时,a便销毁
Jinhao
2003-08-07
打赏
举报
回复
引用参数就看成是传入的那个变量
void fun1(int &a) //用引用就相当于对i操作
{
a=15;
}
void fun2(int *a) //a就是地址
{
*a=20;
}
int i=10;
fun1(i);
cout<<i; //这是i就成了15
fun2(&i);
cout<<i; //这时i成了20
对象
、
对象
指针或
对象
引用
作
为函数的参数和返回值
函数的参数可以是
对象
、
对象
指针或
对象
引用
。 (1)当形参是
对象
时,实参要求是相同类的
对象
名,C++不能对类
对象
进行任何隐式类型转换。此时形参是实参
对象
的副本。 采用这样的值传递方式会增加函数调用在空间、时间上的开销,特 别是当数据成员的长度很大时,开销会急剧增加。 实际编程中,传递
对象
时需要考虑类的规模带来的调用开销,如果开销很大时建议不用
对象
作
为
函数参数
。 (2)当形参是
对象
指针时,实参要求是同类
对象
的指针,C++不能对
对象
指针进行任何隐式类型转换。 函数调用时,无论类多大规模,传递的参数是一个地址值
指针和
引用
作
为
函数参数
的区别
这个
问题
是在写平衡树的时候遇见的,到网上看了很多,也没明白,自己尝试了举一些例子来对比,终于明白了。 一言以蔽之:如果想改变一般类型的参数的值,可以使用变量的指针做参数;如果想改变指针变量指向的地址就要用
引用
参数。 先介绍一下
问题
产生的原因: 在AVL树的函数操
作
里,需要返回的改变较多,所以无法定义返回值函数,只能定义含参函数通过对参数的改变对树进行维护。 这里大家想到的肯定是...
【C++】
引用
作
为
函数参数
C++中,
引用
作
为
函数参数
引用
作
为
函数参数
C++之所以增加
引用
类型, 主要是把它
作
为
函数参数
,以扩充函数传递数据的功能。 ———————————————————— c++,函数传参: (1)将变量名
作
为实参和形参。这时传给形参的是变量的值,传递是单向的。如果在执行函数期间形参的值发生变化,并不传回给实参。因为在调用函数时,形参和实参不是同一个存储单元。//同c (2) 传递变量的指...
c++
引用
做
函数参数
和指针做
函数参数
的区别
如果不需要修改传递的
对象
,并且
对象
不能为空,可以使用
引用
。- 指针在声明时可以不进行初始化,或者可以使用`nullptr`进行初始化。对指针的修改不会自动反映到原始
对象
上,需要通过解
引用
操
作
符`*`来访问和修改指针指向的
对象
。- 使用指针
作
为
函数参数
时,需要在函数内部进行空指针检查,以确保指针是有效的,以避免访问空指针而导致程序崩溃。在
函数参数
中使用指针时,可以将指针设置为`nullptr`或空指针。- 使用
引用
作
为
函数参数
时,不需要进行空指针检查,因为
引用
必须在初始化时指向有效的
对象
。
C++
函数参数
的
引用
方式
总结来说,值传递将实参的值复制给函数的形参,对形参的修改不会影响实参本身;
引用
传递将实参的
引用
传递给函数的形参,对形参的修改会同时修改实参。非常量
引用
参数允许修改传递给函数的实参,而常量
引用
参数只能读取实参的值,不能进行修改。
引用
传递是指将实参的
引用
传递给形参,在函数中对形参的修改会同时修改实参。值传递是指将实参的值复制给形参,在函数中对形参的修改不会影响实参本身。符号定义的,它允许函数修改传递给它的实参,并且对应的实参也会被修改。符号定义的,它确保函数无法修改传递给它的实参,只能读取。
C++ 语言
65,206
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章