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

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,可能是运行时中间值。

    评论

报告相同问题?

悬赏问题

  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制