C++小知识08 —— 引用

引用和指针

引用是一种更安全的指针

1、引用必须初始化,而指针可以不用初始化

2、定义一个引用变量,和定义一个指针变量其汇编指令是一样的,通过引用变量修改引用内存的值,和通过指针解引用修改指针指向的值,其底层汇编指令也是一样

先看看定义

这个是引用

 这个是指针

大家可以看到他们的汇编指令是一样的。修改值的操作汇编也是一样的。

3、引用只有一级引用,没有多级引用,而指针有一级指针,也有多级指针

4、概念上引用是给一个空间取别名,而指针是自己占有一个空间,这个空间装的是指向空间的地址

下面展示一下常用的交换函数写法

void swap(int* x, int* y)
{
	int temp = *x;
	*x = *y;
	*y = temp;
}

                
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当我们将变量传递给函数时,函数会创建一个新的副本,这意味着原始变量和函数内部的变量是不同的。但是,有时我们需要在函数内部修改原始变量,而不是创建一个新的副本。这时候就可以使用引用做函数参数。 引用参数是使用 & 符号来声明的。它使得函数能够直接访问原始变量,而不是创建一个新的副本。以下是一个简单的示例: ```c++ void swap(int& x, int& y) { int temp = x; x = y; y = temp; } int main() { int a = 5, b = 10; swap(a, b); cout << a << " " << b << endl; // 输出 10 5 return 0; } ``` 在这个例子中,我们将 a 和 b 作为引用传递给 swap() 函数,这意味着函数可以直接修改 a 和 b 的值。 另外,我们还可以定义一个返回引用的函数。返回引用的函数可以用于函数嵌套以及连续操作等,可以让代码更加简洁易懂。以下是一个简单的示例: ```c++ int& getLargest(int& x, int& y) { if (x > y) { return x; } else { return y; } } int main() { int a = 5, b = 10; getLargest(a, b) = 20; cout << a << " " << b << endl; // 输出 5 20 return 0; } ``` 在这个例子中,getLargest() 函数返回了 a 和 b 中的较大值的引用。我们可以使用该函数来设置 a 或 b 的值。 需要注意的是,返回引用的函数要确保返回的引用指向的变量在函数返回后仍然存在。否则,返回的引用将指向一个已经不存在的变量,这将导致未定义的行为。 希望这个简单的介绍能够帮助你理解引用做函数参数以及返回值为引用的函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员弘羽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值