正常值参数

本文深入探讨了指针与引用的区别,特别是在C++中如何利用指针的引用特性来实现参数值的更改。通过示例代码展示了如何通过引用传递指针以达到修改原始指针指向的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为ptempptr收到一份间的地址,即使我们改变ptempptr,这并没有改变,PPTR点价值。因此,该程序打印

565

尽管本身的地址是按值传递的,你仍然可以解引用地址永久改变在该地址的值!这是区别通过地址(参考)从传值。

下一个问题是,“如果我们要修改实参的地址范围内的功能?“。原来,这是非常容易的。你只需要使用按引用传递指针本身(有效传递地址以供参考)。你已经学会了,通过引用传递的价值体现在功能恢复到原来的参数的任何变化。所以在这种情况下,我们告诉编译器,使ptempptr地址有任何变化应反映回PPTR!做一个指针的语法有点奇怪(易得向后):int *和PPTR。然而,如果你得到它时,编译器将给你一个错误。

下面的程序说明了使用参考一点

1
2
3
4
5
6
7
8
9
10
11
// pTempPtr is now a reference to a pointer to pPtr!
// This means if we change pTempPtr, we change pPtr!
void SetToSix(int *&pTempPtr)
{
    using namespace std;
 
    pTempPtr = &nSix;
 
    // This will print 6
    cout << *pTempPtr;
}

请注意,您还必须更新函数原型以上主要考虑的settosix()原型
1
2
3
// Function prototype so we can define
// SetToSix below main()
void SetToSix(int *&pTempPtr);

当我们再次运行该程序与此版本的函数,我们得到的:

566

这表明调用settosix()确实改变间的地址!

很奇怪的是,这里的结论是,引用指针,与指针地址是按值传递的。通过地址传递价值(参考)来自于事实,我们可以取消引用地址改变原有的争论,我们可以不与正常值参数。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值