相关疑难解决方法(0)

将数组和数组指针传递给C中的函数之间的区别

C中两个函数有什么区别?

void f1(double a[]) {
   //...
}

void f2(double *a) {
   //...
}
Run Code Online (Sandbox Code Playgroud)

如果我要在一个相当长的数组上调用这些函数,这两个函数的行为会不同,它们会占用更多的空间吗?

c arrays function parameter-passing space-efficiency

104
推荐指数
2
解决办法
7万
查看次数

函数参数中int*array和int array []之间的区别

我已经看到,如果函数参数是"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)

c++ arrays pointers parameter-passing

10
推荐指数
1
解决办法
1万
查看次数