C++ 指针与引用

少于 1 分钟阅读

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++?

更新时间: