C++函数【数组作为函数的参数】

来源:互联网 发布:mac定义环境变量 编辑:程序博客网 时间:2024/04/30 00:41

表示C++的内容很多都不记得了 - - 需要重头再细细温习一下。
从例子着手好了。
例子全部选自《C++程序设计 思想与方法》。

【数组作为函数的参数】
一个例子,求成绩平均值:

#include <iostream>using namespace std;int average(int array[10]) {    int i, sum = 0;    for(i = 0; i < 10; ++i) {        sum += array[i];    }    return sum / 10;}int main() {    int i, score[10];    cout << "请输入10个成绩:";    for (i = 0; i < 10; i++) {        cin >> score[i];    }    cout << "平均成绩是:" << average(score) << endl;    return 0;}

运行结果如下:

请输入10个成绩:1 2 3 4 5 6 7 8 9 10
平均成绩是:5
Program ended with exit code: 0

注意输入成绩的时候各成绩之间不能用逗号分隔,否则会出错。具体原因不明了,下次了解更深这方面内容的时候再做补充。

数组传递的本质是数组起始地址的传递。

另一个例子,整型数据逆序输出:

#include <iostream>using namespace std;#define MAX 10int ReadIntegerArray(int Array[ ], int max, int flag) {    int size = 0;    cout << "请输入数组元素,以" << flag << "结束:";    while(size < max) {        cin >> Array[size];        if(Array[size] == flag)            break;        else            ++size;    }    return size;}void ReverseIntegerArray(int Array[ ], int size) {    int i, tmp;    for(i = 0; i < size/2; i++) {        tmp = Array[i];        Array[i] = Array[size-i-1];        Array[size-i-1] = tmp;    }}void PrintIntegerArray(int Array[ ], int size) {    int i;    if(size == 0) {        return;    }    cout << "逆序是:" << endl;    for(i = 0; i < size; ++i) {        cout << Array[i] << '\t';    }    cout << endl;}int main() {    int IntegerArray[MAX], flag, CurrentSize;    cout << "请输入结束标记:";    cin >> flag;    CurrentSize = ReadIntegerArray(IntegerArray, MAX, flag);    ReverseIntegerArray(IntegerArray, CurrentSize);    PrintIntegerArray(IntegerArray, CurrentSize);    return 0;}

数组传递的本质是数组起始地址的传递,因此实参传递到形参后调用函数会修改实际数组的值,另外,数组的大小可以不预先定义。

0 0
原创粉丝点击