i_dontknow 2017-02-03 07:32 采纳率: 0%
浏览 1624

C++数组的引用作函数参数的问题

图片说明
C++数组的引用作参数时,此参数是个指针还是数组本身。如:
void test ( int (&arr)[4] ) // 该函数的参数是一个整型数组的引用,数组有4个元素
{
sizeof(arr); // vs2010调试显示sizeof是4(32位是4,64位是8,貌似当作指针了)
int nSize = sizeof(arr); // 但实际输出显示的是16,是数组本身大小
cout << nSize << endl;
}
void main()
{
int arr[4];
test( arr );
}

问题是:数组的引用作参数,是否被当作数组本身使用,输出的大小是16,为什么调试时看是4,test函数中的arr大小到底应该是多少。

  • 写回答

3条回答 默认 最新

  • 战在春秋 2017-02-03 10:34
    关注

    对编译期长度确定的数组,指向数组的引用可以作为参数传递,此时传递的是数组本身。
    sizeof(arr)值应为数组大小16。
    至于sizeof(arr); 调试时显示为4,可能是运行时中间值。

    评论

报告相同问题?