void print(const int arr[], int count)
{
for (size_t i = 0; i != count; ++i)
cout << arr[i] << endl;
}
int main()
{
int i = 0, j[2] = { 0,1 };
print(&i, 1);
print(j, 2);
return 0;
}
《C++ Primer》第五版,中文版。196 页。
答案给的是重载的,书里我看过的地方好像也没提到过这种情况应该如何处理。
合理,数组作为参数退化为指针。
for (size_t i = 0; i != count; ++i)
改成
for (size_t i = 0; i < count; i++)
&i 成了一个地址,也就可以理解成一个元素的数组地址
根据你贴的代码,首先是可以的,至于是否合理那要看你自己的要求了。
``
void print(const int arr[], int count)
{
for (size_t i = 0; i != count; ++i)
cout << arr[i] << endl;
}
int main()
{
int i = 0, j[2] = { 0,1 };
print(&i, 1);//&i,也即是传入i的引用,&i的作用效果和int *p=&i, print(p,1);一样,
print(j, 2); //数组名作为参数自动变成一个指针,指向数组第一个元素
return 0;
}`
按照地址来看合理,但是感觉可读性不怎么强,别扭
合理,数组存储是以指针存储的,int加了&也是一个指针