zoukankan      html  css  js  c++  java
  • 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;
    }
    

    运行结果:

    2 3 4

  • 相关阅读:
    缓冲流
    properties类
    io流
    异常处理
    file的概述和作用
    map集合和set集合
    js 判断是否是undefined null NaN
    java instanceof 判断是否是String
    ajax获取数据中文乱码问题最简单的完美解决方案
    if else if else if else 的用法
  • 原文地址:https://www.cnblogs.com/cszlg/p/2910423.html
Copyright © 2011-2022 走看看