我用来将一维数组传递给函数的常规方法如下。
#include <stdio.h>
#define ARRAY_SIZE 5
void function(int *ptr_array, int size)
{
int index;
printf("Destination array contents: ");
for(index=0;index<size;index++)
{
printf("%d ",ptr_array[index]);
}
}
int main()
{
int array[ARRAY_SIZE]={1,2,3,4,5};
function(array,ARRAY_SIZE);
printf("\n");
return 0;
}
我确实意识到接受参数的函数也可以跟随为void function(int ptr_array[],int size)
(or) void function(int ptr_array[5],int size)
。在这种情况下,传递的参数是 aint *
但收到 in int []
。所以问题是
- 在我看来,编译器必须对函数中接受的参数进行强制转换。数组索引如何影响强制转换?
- 如果传递给函数的是二维数组的基地址,那么接受
int[][]
表单 参数的正确类型是什么