C++ 指针与引用
C++指针与引用
指针
- 可以为空(万恶之首)
- 可以做指针的偏移操作
- 可以用做修改一个变量
- 可以用来用来快速传递一个对象,没有复制的成本(只有指针复制的成本) 见下面代码 ```c++ int f1(int* i) { *i = 2; }
int f2(int i){ i = 3; }
int main(){ int num = 0; f1(&num); std::cout « num « std::endl; ///< 此处num为2 f2(num); std::cout « num « std::endl; ///< 此处num仍为2 }
## 引用
* 引用同指针一样可以直接修改对象本身,减少传递对象的复制成本
* 引用不可为空,即创建必须初始化
* 引用不能同指针一样,进行四则运算
```c++
void f1(int& num) {
num = 100;
}
int main() {
int i = 0;
int &r = i;
r = 1;
std::cout << i << std::endl; ///< i这里为1
std::cout << r << std::endl; ///< r这里为1
f1(r);
std::cout << i << std::endl; ///< i这里为100
std::cout << r << std::endl; ///< r这里为100
}
详情可见What are the differences between a pointer variable and a reference variable in C++?