使用显示 int 数组的函数显示一个 int 是否合理?

 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加了&也是一个指针