C中两个函数有什么区别?
void f1(double a[]) {
//...
}
void f2(double *a) {
//...
}
Run Code Online (Sandbox Code Playgroud)
如果我要在一个相当长的数组上调用这些函数,这两个函数的行为会不同,它们会占用更多的空间吗?
我已经看到,如果函数参数是"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)