【发布时间】:2017-04-18 02:26:48
【问题描述】:
似乎可以通过引用第一个元素来传递数组:
void passMe(int& firstElement)
{
int* p=&firstElement;
cout << p[0] << p[1];
}
主程序:
int hat[]={ 5,2,8 };
passMe(hat[0]);
通常,我会使用void passMe(int* myArray) 或void passMe(int[] myArray) 来代替上述函数定义。但是上述方法会引起任何问题吗?如果没有别的,知道答案会让我更好地理解这里的事情。
【问题讨论】:
-
请注意,C 和 C++ 是不同的语言。这显然是一个 C++ 问题,因此请仅使用相关标签。
-
一个问题是你不知道
passMe函数内部有多少元素组成数组。 -
@kaylum 感谢您的提醒。是的,
cout仅适用于 C++,但我标记了 C,因为在我看来,问题的要点同样适用于两者。 -
@FreshAir -- 两者同样适用 -- 不,不是。
C中没有引用参数之类的东西。 -
C 没有通过引用。
int& firstElement不是有效的 C。如果应用于 C,这个问题毫无意义。
标签: c++ arrays parameter-passing