我对 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];
}
指向数组的指针有什么不同?我四处寻找,但没有运气。