计算函数内的数组大小?

Dev*_*vMJ 3 c++

#include <iostream>
void ArraySize(int arrMyarr[])
{
    std::cout << sizeof(arrMyarr) << '\n';
}

void ArraySize1(int *arrMyarr)
{
    std::cout << sizeof(arrMyarr) << '\n';
}

int main()
{
    int arrTemp[] = { 122, 11, 22, 63, 15, 78, 143, 231 };
    std::cout << sizeof(arrTemp) << '\n';
    ArraySize(arrTemp);
    ArraySize1(arrTemp);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:32 4 4

以下两个函数声明是否相同?

void ArraySize(int arrMyarr[]);

void ArraySize1(int *arrMyarr);

Som*_*ken 6

以下两个函数声明是否相同?

是的,完全.传递时,数组会衰减到指向其第一个元素的指针,这就是您所看到的原因4.为了防止这种情况,可以使用或(C++ 11)编译时间大小的C类数组.std:vector::size()std::array


归档时间:

查看次数:

110 次

最近记录:

9 年,1 月 前