简述:引用
作用: 给变量起别名(类似给人起小名,如:张三 小名叫小三 )
语法: 数据类型 &别名 = 原名
1 int main() { 2 3 int a = 10; 4 int &b = a; 5 6 cout << "a = " << a << endl; 7 cout << "b = " << b << endl; 8 9 b = 100; 10 11 cout << "a = " << a << endl; 12 cout << "b = " << b << endl; 13 14 system("pause"); 15 16 return 0; 17 }
int main() { int a = 10; int b = 20; //int &c; //错误,引用必须初始化 int &c = a; //一旦初始化后,就不可以更改 c = b; //这是赋值操作,不是更改引用 cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; system("pause"); return 0; }
//发现是引用,转换为 int* const ref = &a; void func(int& ref){ ref = 100; // ref是引用,转换为*ref = 100 } int main(){ int a = 10; //自动转换为 int* const ref = &a; 指针常量是指针指向不可改,也说明为什么引用不可更改 int& ref = a; ref = 20; //内部发现ref是引用,自动帮我们转换为: *ref = 20; cout << "a:" << a << endl; cout << "ref:" << ref << endl; func(a); return 0; }
引用的优点
- 引用传递的效果与指针传递的效果一致,相较于指针传递可读性更强。
- 底层实现与指针类似,但编译器保证一定不为空,更为安全。
- 使用指针传递时,会产生一个对应数据的副本,这就导致在使用对象或者容器时,就会产生较大的效率与内存占用的问题,但引用传递就没有这些问题。
结论
C++推荐用引用技术,因为语法方便,可读性更强

浙公网安备 33010602011771号