引数としての配列
CoddyのCジャーニー「Fundamentals」セクションの一部 — レッスン 58/63。
C言語では、配列を関数の引数として渡すことができます。配列が関数に渡されるとき、実際に渡されるのは最初の要素のメモリ番地です。
配列と、それを引数として受け取る関数を宣言します:
void displayArray(int arr[], int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}配列を作成し、関数を呼び出します:
int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);配列を関数に渡すと、関数内で行われた配列への変更は元の配列に影響を与えます:
void doubleValues(int arr[], int size) {
for(int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}
// 関数を呼び出す
doubleValues(numbers, 5);
// これで numbers には {20, 40, 60, 80, 100} が含まれますチャレンジ
簡単sumArray という名前の、2つの引数を取る関数を作成してください:
- 整数型の配列 (arr)。
- 配列のサイズを表す整数 (size)。
この関数は、配列内のすべての要素の合計を計算して返す必要があります。
次に、main 関数内で以下を行ってください:
- 整数 n(配列のサイズ)を読み取ります。
- n 個の整数を読み取り、それらを配列に格納します。
- 配列を引数に指定して sumArray 関数を呼び出します。
- 合計を "Sum: X" という形式で出力します(X は合計値です)。
チートシート
配列は参照(最初の要素のメモリ番地)によって関数に渡されます:
void displayArray(int arr[], int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}配列名とサイズを指定して関数を呼び出します:
int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);関数内で行われた配列への変更は、元の配列に影響を与えます:
void doubleValues(int arr[], int size) {
for(int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}自分で試してみよう
#include <stdio.h>
// ここにsumArray関数を記述してください
int main() {
int n;
scanf("%d", &n);
int arr[n];
for(int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// sumArray関数を呼び出し、結果を表示してください
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。