引用作为函数参数的案例

#include <iostream>
using namespace std;

//非引用参数
int lever1(int a[], int len){ //此a非彼a,这个a式一维数组名,下面那个a是二维数组名
    int sum =0;
    for (int i=0; i<len; i++) {
        sum += a[i];
    }
    return sum/len<80?0:1;
}
//返回引用类型
int& lever2(int a[],int len,int & rta,int & rtb){
    int sum = 0;
    for (int i=0; i<len; i++) {
        sum += a[i];
    }
    return sum/len<80?rtb:rta;
}
int main(int argc, const char * argv[]) {
    int TA = 0, TB =0;
    int a[6][4]={
        {70,69,81,77},
        {89,81,99,83},
        {67,78,71,80},
        {62,79,80,65},
        {88,80,73,71},
        {90,92,83,88}
    };
    int i;
    for (i=0; i<6; i++) {
        lever1(a[i], 6)==0?TB++:TA++;// 传入行指针
    }
    cout << "TA:"<<TA<<", TB:"<<TB<<endl;

    TA = 0;TB =0; //重置的时候不能用 TA = 0,TB =0;
    for (i=0; i<6; i++) {
        lever2(a[i], 6, TA, TB)++;// 传入行指针,引用就是value,所以可以直接++
    }
    cout << "TA:"<<TA<<", TB:"<<TB<<endl;
    return 0;
}
TA:2, TB:4
TA:2, TB:4

results matching ""

    No results matching ""