最近在写C++代码的时候,对于函数形参什么时候用&,什么时候用*,比较模棱两可,故总结一下,将相关的知识点巩固一下。
指针
说起指针,我们应该很自然而然的想到地址,指针用*来表示,int *a = &b就表示变量b的地址保存在指针a中,我们也可以说a是指向int的一个指针,a里面储存的是地址,并不是b的值。解引用*符号表示根据地址取值,例如*a表示指针a中储存的地址指向的值,取址符号&表示获得变量的地址,例如&b表示获得变量b的地址。
另外需要说明的是,数组的名称代表的是首元素的地址
1 | |
引用
引用之前几乎没怎么用过,也没怎么了解过,它更多的是在函数形参传值时回用,这个我们稍后和指针一起来总结。
先看引用变量的代码:
1 | |
指针和引用在函数中的使用
1 | |
从上述代码的最后两行也能看出来,按值传递和引用传值光从调用上是区分不开的,只能看函数的定义来区分