首页 > 解决方案 > 通过引用将数组传递给函数

问题描述

void printElements(int(arr)[4])   // option 1
//void printElements(int(&arr)[4])  // option 2
{
    int length( sizeof(arr) / sizeof(arr[0]) ); 
    std:: cout <<"length is "<< length << std::endl;
    for (int i( 0 ); i < length; ++i)
    {
        std::cout << arr[i] << std::endl;
    }
}

与主要功能

int main() {
    int arr[]{99, 20, 14, 80};
    printElements(arr);
}

如所列,两个选项:一个是void printElements(int(arr)[4]),另一个是void printElements(int(&arr)[4])。但是第一个将cout数组的大小为2。第二个说数组的大小为4。为什么会有所不同?

标签: c++arraysreference

解决方案


推荐阅读