Menu
Coddy logo textTech

引数としての配列

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} が含まれます
challenge icon

チャレンジ

簡単

sumArray という名前の、2つの引数を取る関数を作成してください:

  • 整数型の配列 (arr)。
  • 配列のサイズを表す整数 (size)。

この関数は、配列内のすべての要素の合計を計算して返す必要があります。

次に、main 関数内で以下を行ってください:

  1. 整数 n(配列のサイズ)を読み取ります。
  2. n 個の整数を読み取り、それらを配列に格納します。
  3. 配列を引数に指定して sumArray 関数を呼び出します。
  4. 合計を "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;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン