关于参数传递的问题 这个帖子的感想

博客探讨了C++中传引用和C中传指针的区别。有人认为二者效果一样,不理解为何C++要引入引用。通过swap函数示例展示,C++引用版编程更简洁,省去了指针操作符*,且引用主要是为支持运算符重载而引入。

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

关于参数传递的问题

看完这个贴,我还是觉得传指针和传引用一个样.
到底有什么区别呢?

既然c中的传指针就可以到达效果,为啥还要来个引用?

张军师兄认为c++中reference这个概念的引入,使得编程简洁。

for example:swap()

c  指针版

int swap(int *x, int *y)
{
int temp;
temp = *x; *x = *y; *y = temp;
return temp;
}
void main()
{
int a = 1, b = 2;
int *p1 = &a;
int *p2 = &b;
swap(p1, p2)
}

////////////////////////

c++ 引用版

int& swap2(int& x, int& y)
{
int temp;
temp = x;
x = y;
y = temp;
return x;
}

void main()
{
int a = 1, b = 2;
swap2(a, b);
}

虽然实际上在引用中处理的是地址,但是编辑程序时省去好多的*. 程序简洁多了。

References were introduced primarily to support operator overloading.
-- Bjarne Stroustrup, The Design and Evolution of C++

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值