C++学习之:数组作为函数参数

    当形参是数组时,实际参数也应该是数组,而且形参和实参数组的类型也要一致。按照值传递的机制,在参数传递时用实际参数的值初始化形式参数,即将作为实际参数的数组的起始地址赋给形式参数的数组名,这样形式参数和实际参数的数组具有同样的起始地址,也就是说形参和实参的数组其实是同一个数组。在函数中对形式参数数组的任何操作实际是对实参数组的修改。故数组传递本质是仅传递了数组的起始地址,并不是将作为实际参数的数组中的每个元素对应传递给形式参数的数组的元素。

    被调函数中如何知道作为实际参数的数组的大小呢?没有任何途径,除非将数组大小作为一个参数同时传递。

总结:1.数组传递实质上传递的是数组起始地址,形参和实参是同一个数组。

          2.在函数中并没有定义新的数组传递一个数组需要两个参数:数组名和数组大小。

          3.形式参数数组不需要指定大小,所以方括号中为空。

          4.C++规定,数组名是数组的起始地址。

如程序:

int main()
{   int score[10];
    cout << "请输入10个成绩:" << endl;
    for (int  i = 0; i < 10; i++)  cin >> score[i];
    cout << "平均成绩是:" << average(score) 
            << endl;
    cout << score[3] << endl; //发现输出的不是80,而是90!
    return 0;
} 

int average(int array[10])
{ 
    int sum = 0;
    for (int  i = 0; i < 10; ++i)  sum += array[i];
    array[3] = 90;
    return sum / 10;
 } 
假如输入数据为:
90 70 60 80 65 89 77 98 60 88
平均成绩是:77



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值