引用指对变量,函数等起一个别名,和指针有些区别。
建立引用时,需要对引用对应一个目标,引用初始化之后就与这个目标捆绑,即不能再重新赋值
引用与函数之间存在三种关系
1.引用作为函数参数
可以做到传参的作用
eg.swap函数
void swap (int &x, int &y) { int temp; temp = x; x = y; y = temp; }
2.引用作为函数的返回值
函数的返回值如果声明为引用型,其调用也可以被赋值,函数调用也可以用作左值表达式。
eg.
int &max (int x, int y) { return (x > y ? x : y); } //可以用以下方法调用max函数 int z = max (a, b); max (a, b) = 20; // 将a,b中最大的值改为20 max (a, b) ++; // 将a,b中最大的值加一
3.通过引用返回多个值
#include <bits/stdc++.h> #define LL long long using namespace std; int score [4] [5] = { {60, 70, 80, 90, 78}, {75, 85, 88, 78, 83}, {89, 88, 79, 96, 90}, {76, 74, 69, 90, 87} }; int &level (int grade [], int unit, int &gA, int &gB) { int sum = 0; for (int i = 0; i < unit; i++) { sum = sum + grade [i]; } sum /= unit; if (sum >= 85) return gA; else return gB; } int main () { int genusA = 0, genusB = 0; int student = 4; int gradeunit = 5; for (int i = 0; i < student; i++) level (score [i], gradeunit, genusA, genusB) ++; cout << "A级人数为:" << genusA << endl; cout << "B级人数为:" << genusB << endl; return 0; }
运行结果为
A级人数为:1 B级人数为:3
ps.
文章较水,只不过我想借此机会改一下自己的码风~