C++核心编程
2. 引用
引用的基本作用
作用:给变量起别名
语法:数据类型&别名=原名
引用注意事项
引用做函数参数
using namespace std;
//值传递
void swip01(int a, int b)
{
int temp = a;
a = b;
b = temp;
cout << "swip01a等于" << a<<endl;
cout << "swip01b等于" << b << endl;
}
//地址传递
void swip02(int *a, int *b)
{
int temp;
temp= *a;
*a =*b;
*b = temp;
cout << "swip02a等于" <<*a <<endl;
cout << "swip02b等于" << *b<<endl;
}
//引用传递
void swip03(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
cout << "swip03a等于" << a << endl;
cout << "swip03b等于" << b<< endl;
}
int main()
{
int a = 20, b = 10;
swip01(a, b);
cout << a << endl << b << endl;
swip02(&a,&b);
cout << a << endl << b << endl;
swip03(a, b);
cout << a << endl << b << endl;
return 0;
}
C++
通过以上代码可以看出,形参修饰实参用引用可以简化代码
引用做函数返回值
加上&符就表示引用的方式返回
存放在栈区的数据系统运行完会自动清除
加上static开辟堆区数据,堆区由程序猿开辟程序猿手动释放。
还可以进行赋值操作
前两次输出等于10,后两次输出1000
引用的本质
引用的本质在C++内部的实现是指针常量,可以修改值的大小,不可以修改指针的指向性,这也说明了为什么引用一旦初始化就不可以更改。 在平时使用中引用就是别名,所有的指针操作由编译器操作。
常量引用
上面是正常的引用,引用一个变量。
但是直接引用一个常量就会报错,因为引用本身需要一个合法的内存空间。
在加上const后不再报错,编译器优化了代码
int temp=10;
const int &ref=temp;
加入const后变量将不可以修改。
函数中利用常量引用来防止误操作修改实参。