1、概念
①引用变量是C++新增的复合类型(相比C)
②引用是已定义的变量的别名。
③引用的主要用途是用作函数的形参和返回值。
声明/创建引用的语法:数据类型 &引用名 = 原变量名
#include<iostream>
using namespace std;
int main() {
int a = 10;//声明普通的整型变量。
int& b = a;//创建引用b,b是a的别名。
cout << "a: " << a << " b: " << b << endl;
return 0;
}
a: 10 b:10
2、细节
①引用的数据类型要与原变量的数据类型相同。 不然会报错
②引用名和原变量名可以互换,它们的值和内存单元是相同的。
#include<iostream>
using namespace std;
int main() {
int a = 10;//声明普通的整型变量。
int& b = a;//创建引用b,b是a的别名。
cout << "a的地址是:" << &a << "a的地址是:" << a << endl;
cout << "b的地址是:" << &b << "b的地址是:" << b << endl;
return 0;
}
a的地址是:0000000F7C0FF564a的地址是:10
b的地址是:0000000F7C0FF564a的地址是:10
③必须在声明引用的时候初始化,初始化后就不能改变了。
④C和C++用&符号来指示/取变量的地址,C++给&符号赋予了另一种意义。
在 C++ 中,& 符号有以下几种用法:
-
取地址符号,用于获取一个变量的地址。例如:
int a = 10; int* ptr = &a;
,其中&a
就是取变量a
的地址。 -
取引用符号,用于声明引用类型。例如:
int a = 10; int& ref = a;
,其中&
是声明引用类型的符号。 -
按位与运算符,用于进行按位与运算。例如:
int a = 3, b = 5; int c = a & b;
,其中c
的值为 1,因为 3 的二进制表示为 0011,5 的二进制表示为 0101,进行按位与运算后得到二进制数 0001,即十进制数 1。 -
逻辑与运算符,用于进行逻辑与运算。例如:
if (a > 0 && b > 0)
,其中&&
就是逻辑与运算符。