我看到如果函数参数是“int arr[]”或“int * arr”,数组值会改变。哪里不一样了?
整数数组[]:
void myFunction(int arr[], int size) {
for (int i = 0; i < size; ++i)
arr[i] = 1;
}
整数 * 数组:
void myFunction(int * arr, int size) {
for (int i = 0; i < size; ++i)
arr[i] = 1;
}
这两个函数都会更改数组值。
int main(){
int array[3];
array[0] = 0;
array[1] = 0;
array[2] = 0;
myFunction(array, 3);
return 0;
}
最佳答案
没有区别。两种函数类型(调整后)都是“采用指向 int
和 int
的指针的函数,返回 void
”。这只是 C++ 的语法怪癖:非引用类型的函数参数中最外层的 []
与 *
同义。
关于c++ - 函数参数中 int * array 和 int array[] 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16748150/