我对C++相当陌生,最近遇到了这个问题。通过引用传递数组?
此代码显然会工作:
void setvalues(int *c, int *d)
{
(*c) = 1;
(*d) = 2;
}
int main()
{
int a, b;
setvalues(&a, &b);
std::cout << a << b;
}
那么,为什么这个返回一个错误? VISUAL C++ 2010错误:
C2664: 'setvalues' : cannot convert parameter 1 from 'int (*)[2]' to 'int *[]'
void setvalues(int *c[2], int *d[2])
{
(*c[1]) = 1;
(*d[1]) = 2;
}
int main()
{
int a[2], b[2];
setvalues(&a, &b);
std::cout << a[1] << b[1];
}
有何不同之处指向数组?我四处搜寻,但没有运气。
[CDECL(http://cdecl.ridiculousfish.com/?q=int+*c%5B2%5D)是你的朋友。 –