我已经看到,如果函数参数是"int arr []"或"int*arr",数组值将会改变.区别在哪里?
int array []:
void myFunction(int arr[], int size) {
for (int i = 0; i < size; ++i)
arr[i] = 1;
}
Run Code Online (Sandbox Code Playgroud)
int*数组:
void myFunction(int * arr, int size) {
for (int i = 0; i < size; ++i)
arr[i] = 1;
}
Run Code Online (Sandbox Code Playgroud)
这两个函数都会更改数组值.
int main(){
int array[3];
array[0] = 0;
array[1] = 0;
array[2] = 0;
myFunction(array, 3);
return 0;
}
Run Code Online (Sandbox Code Playgroud)