我對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)是你的朋友。 –