C言語で配列を関数に渡す方法は?
C言語の関数呼び出しには、配列を渡す方法として、2つの方法があります:
- 配列のアドレスの受け渡し:関数は配列のアドレスを渡すことで配列の要素にアクセスして変更できます。関数の引数リストでは、配列の要素の型へのポインターを宣言する必要があります。たとえば、int func(int *arr, int length) です。関数内部では、ポインターを使用して配列の要素にアクセスできます。たとえば、int value = arr[index] です。
- 配列のポインタを渡す:関数は、配列のポインタを直接、引数として受け取ることができます。配列ポインタ型を関数の引数リストで宣言する必要があります。たとえば、`int func(int arr[], int length)` または `int func(int *arr, int length)` です。関数内部では、配列のポインタを使用して配列要素にアクセスできます。たとえば、`int value = arr[index]` です。
C 言語では配列型引数は関数呼び出し時にポインタ型に変換されるため、関数内では渡された引数が配列型なのかポインタ型なのかを知ることができない点に注意が必要です。