在C++中指针和引用传值区别

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。

CSDN视频网址:http://edu.csdn.net/lecturer/144

在C ++中,我们可以通过指针或引用将参数传递给函数 在这两种情况下,我们可以得到相同的结果。 所以下列问题是不可避免的: 什么时候是优先于另一个?

Passing by Pointer

#include <iostream>
using namespace std;
 
void swap(int* x, int* y)
{
    int z = *x;
    *x = *y;
    *y = z;
}
 
int main()
{
    int a = 45, b = 35;
    cout << "Before Swap\n";
    cout << "a = " << a << " b = " << b << "\n";
 
    swap(&a, &b);
 
    cout << "After Swap with pass by pointer\n";
    cout << "a = " << a << " b = " << b << "\n";
}

Output:

Before Swap
a = 45 b = 35
After Swap with pass by pointer
a = 35 b = 45


Passing by Reference


#include <iostream>
using namespace std;
void swap(int& x, int& y)
{
    int z = x;
    x = y;
    y = z;
}
 
int main()
{
    int a = 45, b = 35;
    cout << "Before Swap\n";
    cout << "a = " << a << " b = " << b << "\n";
 
    swap(a, b);
 
    cout << "After Swap with pass by reference\n";
    cout << "a = " << a << " b = " << b << "\n";
}

Output:

Before Swap
a = 45 b = 35
After Swap with pass by reference
a = 35 b = 45

引用变量和指针变量的区别

引用通常使用指针来实现 引用是相同的对象,只是使用不同的名称引用必须引用一个对象。 由于引用不能为NULL,所以它们更安全。
1、指针可以重新分配,而引用不能,只能在初始化时分配。
        2、指针可以直接分配NULL,而引用不能。
3、指针可以遍历数组,我们可以使用++去指向下一个项。
         4、指针是保存内存地址的变量, 引用具有与引用的项相同的内存地址。

5、指向类/ 结构体的指针使用' - >'(箭头运算符)来访问它的成员,而引用使用'.'(点运算符)。








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海洋_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值