1次元配列を関数に渡すために使用する通常の方法は次のとおりです。
#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)
引数を受け入れる関数は(または)としても続くことができることに気づきvoid function(int ptr_array[5],int size)
ました。このシナリオでは、渡された引数はですが、int *
で受信されint []
ます。だから質問は
- コンパイラは関数で受け入れられた引数のキャストを実行する必要があるように見えます。配列インデックスはキャストにどのように影響しますか?
- 関数に渡されるのが2D配列のベースアドレスである場合、
int[][]
フォーム で引数を受け入れるための正しいタイプは何ですか