指针和引用
- 指针:存储的是变量的地址
- 引用:和原变量实质上是同一东西,只不过是原变量的一个别名
1 | int a=1;int *p=&a; // p的值是a的地址 |
&和*
1. & 符号
- 取址符,用于返回变量的实际地址
- 定义变量的引用,不代表取地址
2. * 符号
用于返回地址所指向的变量(p存储的是变量的地址,*p表示该地址所指向的变量)
1 |
|
指针和引用作为参数传递
1.指针作为参数传递
1 |
|
2.引用作为参数传递
1 |
|
指针和引用的区别
- 可以有 const 指针,但是没有 const 引用 (??)
- 指针可以有多级,但是引用只能是一级
- 指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化
- 指针的值在初始化后可以改变,即指向其它的存储单元,而引用在初始化后就不会再改变
- “sizeof引用”得到的是所指向的变量的大小,而”sizeof指针”得到的是指针本身的大小
- 指针和引用的自增(++)运算意义不一样(??)