c++引用
引用指对变量,函数等起一个别名,和指针有些区别。
建立引用时,需要对引用对应一个目标,引用初始化之后就与这个目标捆绑,即不能再重新赋值
引用与函数之间存在三种关系
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.
文章较水,只不过我想借此机会改一下自己的码风~