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