C言語の配列を仮引数に渡す方法は?
C言語では、配列を引数に渡す方法は2つあります。
- 配列のポインタを渡す:配列を渡す際、実際に渡されるのは配列の先頭アドレスです。仮引数は配列のデータ型を指すポインタとして宣言できます。関数内では、ポインタを使用して配列の要素にアクセスすることができます。
以下はサンプルコードです:
#include <stdio.h>
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printArray(arr, size);
return 0;
}
結果は、1、2、3、4、5です。
- 配列のポインタと配列の長さを引数として使用する:配列のポインタだけでなく、配列の長さも引数として渡すことができます。これにより、関数内で配列の要素にアクセスし、配列の長さを知ることができます。
以下はサンプルコードです。
#include <stdio.h>
void printArray(int *arr, int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printArray(arr, size);
return 0;
}
出力結果は同じく、1 2 3 4 5です。
これら2つの方法は両方とも配列の渡し方を実現することができますが、どちらの方法を選ぶかは具体的な要求やプログラミングの習慣によります。