465 字
2 分钟
C++入门 (四) : 引用
2026-03-11

指针与引用#

事实上,reference(引用)只是指针的一个拓展,只是基于指针的一种syntax sugar(语法糖),来使代码更容易读写而已。 顾名思义,引用就是指对现有变量引用的一种方式。 没有reference能做而pointer不能做的事.

和指针不同(先创建一个指针变量,然后赋值 nullptr 等),reference必须引用一个已存在的变量,引用本身并不是一个新的变量,并不真正占用内存。

定义引用#

通过类型&来实现,此处&是类型的一部分,因此并不一定有&就一定是取地址或一定是引用,具体情况要看_context_

int a = 5;
int& ref = a;

ref不是一个真正的变量,只是a变量的一个别名

示例#

void Increment(int value){
value++;
}
int main(){
int a = 5;
Increment(a);
std::cout << a << '\n';
}

这里我们用的是passing by value(传值调用),并不是int& 或者 int*,因此会发生的是拷贝一个新的变量=5,并不会改变 a。 我们需要的是passing by reference(引用传递),来让这个变量递增

void Increment(int* value){
(*value)++;
}
int main(){
int a = 5;
Increment(a);
std::cout << a << '\n';
}

或者

void Increment(int& value){
value++;
}
int main(){
int a = 5;
Increment(a);
std::cout << a << '\n';
}

注意事项#

一旦你声明了一个引用,你就不能修改他所引用的对象,当你给某个变量取了别名,这个别名就只能代表这个变量了.

除此之外,一旦声明必须立即赋值,因为他是变量的引用而不是一个真的变量.

如果想修改引用,则可以通过指针的方式(指针可以改变指向的对象,而引用不行)

int a = 5;
int b = 8;
int* ref = &a;
*ref = 2;
ref = &b;
*ref = 1;
C++入门 (四) : 引用
https://dingfengbo.vercel.app/posts/c入门/04-c引用/
作者
Eureka
发布于
2026-03-11
许可协议
CC BY-NC-SA 4.0