zoukankan      html  css  js  c++  java
  • c++ error: creating array of references( declaration of 'a' as array)

    错误程序:

    #include <iostream>
    using namespace std;
    void func(int& a[], int n)
    {
        for(int i = 0; i < n; i++)
            a[i]++;
    }
    int main()
    {
        int a[3] = {1, 2, 3};
        func(a, 3);
        cout << a[0] << ' ' << a[1] << ' ' << a[2] << endl;
        return 0;
    }
    

    初衷:通过建立引用型形参使得func能够修改数组a的元素的值。
    错因:引用型形参实际上是取实参的地址,从而获得修改实参的能力。而这里给函数传递的是数组a的首地址,地址是无法再取地址的。实际上,把a的首地址传给函数后,函数已经获得修改数组a元素的能力。

    解决方法:把函数func的参数列表中的“int& a[]”改为“int a[]”即可。

    正确程序:

    #include <iostream>
    using namespace std;
    void func(int a[], int n)
    {
        for(int i = 0; i < n; i++)
            a[i]++;
    }
    int main()
    {
        int a[3] = {1, 2, 3};
        func(a, 3);
        cout << a[0] << ' ' << a[1] << ' ' << a[2] << endl;
        return 0;
    }
    












    种一棵树最好的时间是十年前,其次是现在。
  • 相关阅读:
    Android_AyscnTask
    Android_handler
    Android_网络操作
    Android_网络基础
    Android_Fragment
    Android_activity 生命周期
    Android-Dialog
    android_menu
    Android-约束布局
    andorid_相对布局小练习
  • 原文地址:https://www.cnblogs.com/islch/p/12603974.html
Copyright © 2011-2022 走看看