gpt4 book ai didi

c++ - 为什么我们在传递给 C++ 中的函数时将数组大小指定为参数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:35 25 4
gpt4 key购买 nike

我搜了下这个问题,大部分说的都是一样的。他们说,由于我们只在函数中传递数组地址,编译器无法通过查看地址来了解数组大小。我尝试使用这段代码对此进行测试,这两个函数给出了相同的结果。那么,将数组大小指定为函数参数如何以实际方式帮助我?在哪些情况下指定尺寸对我们有帮助?

class ArrayTest
{
public:
void say(int ar[])
{
cout<<ar[1]<<endl;
cout<<ar[7]<<endl;
}

void say(int ar[],int sizeAn)
{
cout<<ar[1]<<endl;
cout<<ar[7]<<endl;
}

};

int main()
{
ArrayTest test;
int anAr[5] = {1,2,3,4,5};
test.say(anAr);
test.say(anAr,5);
return 0;

}

最佳答案

这是关于你作为程序员有机会进行边界检查,而不是编译器是否能做到这一点。

只需尝试打印出数组中的所有元素,大小为:

 void say(int ar[],int sizeAn)
{
for(int i=0; i< sizeAn; ++i)
cout<<ar[i]<<endl;
}

现在没有尺寸:

 void say(int ar[])
{
for(int i=0; i< /*HOW DO I KNOW NOW?*/; ++i)
cout<<ar[i]<<endl;
}

关于c++ - 为什么我们在传递给 C++ 中的函数时将数组大小指定为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53061454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com