この記事では、C言語において配列のポインタを関数に渡す方法について解説します。
目次から探す
配列のポインタを関数に渡す方法
C言語では、配列のポインタを関数に渡すことができます。
これにより、関数内で配列の要素を変更したり、配列を操作したりすることができます。
配列のポインタを引数として受け取る関数の宣言
配列のポインタを引数として受け取る関数を宣言する際には、以下のように関数の引数にポインタ型を指定します。
void 関数名(データ型* 配列名)
配列のポインタを使った処理の例
以下に、配列のポインタを使った処理の例を示します。
#include <stdio.h>
// 配列の要素を2倍にする関数
void doubleArray(int* arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] *= 2;
}
}
int main() {
int numbers[] = {1, 2, 3, 4, 5};
int size = sizeof(numbers) / sizeof(numbers[0]);
printf("変更前の配列: ");
for (int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
doubleArray(numbers, size);
printf("変更後の配列: ");
for (int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
上記のコードでは、doubleArray
という関数を定義しています。
この関数は、配列の要素を2倍にする処理を行います。
main関数
内で、numbers
という配列を宣言し、その後にdoubleArray関数
を呼び出しています。
実行結果は以下のようになります。
変更前の配列: 1 2 3 4 5
変更後の配列: 2 4 6 8 10
配列のポインタを関数に渡すことで、関数内で配列の要素を変更することができました。
これは、関数内で配列の要素数を取得する方法がないためです。