【发布时间】:2022-07-25 23:53:00
【问题描述】:
在 C++ 中将 int 指针或 int 数组作为函数参数有什么区别?
void arrayFunction1(int * x) {
for(int i = 0; i < 10; i++) {
cout << x[i] << endl;
}
}
void arrayFunction2(int x[]) {
for(int i = 0; i < 10; i++) {
cout << x[i] << endl;
}
}
int main() {
int dstdata[10];
arrayFunction1(dstdata);
arrayFunction2(dstdata);
return 0;
}
在我看来,这两个结果都一样。
【问题讨论】:
-
int[]作为参数类型并不表示“int的数组”,而是表示“指向int的指针”。你的原型是等价的,两个函数参数都等价于传递&dstdata[0]。 -
是的,它们完全一样,对于那些认为它们会有所不同然后想知道为什么
sizeof(x)会给出意想不到的结果的人来说,这是一个无穷无尽的困惑来源。
标签: c++