传值调用?传引用?指针有啥用?内存四区是啥?_恋雨凉忆的博客-CSDN博客
看完忆宝的后,一下是我的一些感悟和拓展。
感悟
在课堂的时候,当时刚接触(应该是)堆和栈,没怎么了解这个小点, 今天看了忆宝的分享,收获了不少。所以说我们平常课堂所接触的知识可能是很片面的,需要我们课下靠着自己的好奇心去持续探索。
废话少说,现在我来就 +1提供另一种方法
‘ & ’符号
在定义函数的时候在参数部分使用 &
#include<stdio.h>
void Increment(int &p)
{
p = p + 1;
}
int main()
{
int a = 0;
Increment(a);
printf("The value of a is %d", a);
return 0;
}
详讲引用符号
引用的概念:一个变量或者对象的别名。比如忆宝,它还有个名字叫恋雨凉忆,这时候我们叫忆宝或者是恋雨凉忆,都知道其实是一个人。
所以当我们使用&去对一个变量声明的时候, 就是对他取外号,在上述的Increment函数中,我们对放进来的变量a 取了个别名叫 p,所以在Increment函数中对p执行 p +1 操作,实际上就是在对a加一。
使用引用注意点:
- 引用是C++的概念,所以文件的后缀名是 .cpp
- 一旦引用已经声明就不能再指向其他对象 (案例如下)
#include <stdio.h> int main() { int a = 10; int b = 20; int &ra = a; //给a取了一个绰号叫ra ra = b; //这样写就错力,ra是a的绰号,不可以随便给b }
由上面一个点我们可以知道,声明引用时要初始化,告诉它这是谁的绰号。