工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++ プログラミングで配列を関数に渡す

C++ プログラミングで配列を関数に渡す

このチュートリアルでは、例を使用して、C++ で 1 次元配列と多次元配列を関数パラメーターとして渡す方法を学習します。

C++ では、配列を引数として関数に渡すことができます。また、関数から配列を返すこともできます。

配列を関数の引数として渡す方法を学ぶ前に、C++ 配列と C++ 関数について知っておく必要があります。


配列を関数パラメータとして渡すための構文

配列を関数に渡す構文は次のとおりです:

returnType functionName(dataType arrayName[arraySize]) {
    // code
}

例を見てみましょう。

int total(int marks[5]) {
    // code
}

ここでは、int を渡しています。 marks という名前の型配列 関数 total() に .配列のサイズは 5 です .


例 1:1 次元配列を関数に渡す

// C++ Program to display marks of 5 students

#include <iostream>
using namespace std;

// declare function to display marks
// take a 1d array as parameter
void display(int m[5]) {
    cout << "Displaying marks: " << endl;

    // display array elements    
    for (int i = 0; i < 5; ++i) {
        cout << "Student " << i + 1 << ": " << m[i] << endl;
    }
}

int main() {

    // declare and initialize an array
    int marks[5] = {88, 76, 90, 61, 69};
    
    // call display function
    // pass array as argument
    display(marks);

    return 0;
}

出力

Displaying marks: 
Student 1: 88
Student 2: 76
Student 3: 90
Student 4: 61
Student 5: 69

ここで、

<オール>
  • 引数として配列を渡して関数を呼び出す場合、配列の名前のみが使用されます。
    display(marks);
    ここで、引数 marks 配列 marks[5] の最初の要素のメモリ アドレスを表す .
  • ただし、display() のパラメータに注意してください 関数。
    void display(int m[5])
    ここでは、角括弧 [] を含めて、関数パラメーターで配列の完全な宣言を使用します。 .
  • 関数パラメータ int m[5] int* m; に変換 .これは、配列 marks が指すアドレスと同じアドレスを指します .これは、m[5] を操作すると、 関数本体では、実際に元の配列 marks を操作しています .

    C++ は、メモリと時間を節約するために、この方法で配列を関数に渡す処理を行います。

  • 多次元配列を関数に渡す

    多次元配列を引数として関数に渡すこともできます。たとえば、

    例 2:多次元配列を関数に渡す

    // C++ Program to display the elements of two
    // dimensional array by passing it to a function
    
    #include <iostream>
    using namespace std;
    
    // define a function 
    // pass a 2d array as a parameter
    void display(int n[][2]) {
        cout << "Displaying Values: " << endl;
        for (int i = 0; i < 3; ++i) {
            for (int j = 0; j < 2; ++j) {
                cout << "num[" << i << "][" << j << "]: " << n[i][j] << endl;
            }
        }
    }
    
    int main() {
    
        // initialize 2d array
        int num[3][2] = {
            {3, 4},
            {9, 5},
            {7, 1}
        };
    
        // call the function
        // pass a 2d array as an argument
        display(num);
    
        return 0;
    }
    

    出力

    Displaying Values: 
    num[0][0]: 3
    num[0][1]: 4
    num[1][0]: 9
    num[1][1]: 5
    num[2][0]: 7
    num[2][1]: 1

    上記のプログラムでは、display() という名前の関数を定義しました。 .この関数は 2 次元配列 int n[][2] を取ります を引数として受け取り、配列の要素を出力します。

    関数を呼び出すとき、関数の引数 display(num) として 2 次元配列の名前のみを渡します。 .

    注意 注:配列内の行数の指定は必須ではありません。ただし、列数は常に指定する必要があります。これが、int n[][2] を使用した理由です。 .

    関数の引数として 2 次元を超える配列を渡すこともできます。


    関数から配列を返す C++

    関数から配列を返すこともできます。ただし、実際の配列は返されません。代わりに、ポインターを使用して配列の最初の要素のアドレスが返されます。

    関数から配列を返す方法については、今後のチュートリアルで学習します。


    C言語

    1. C# ジャグ配列
    2. C++ 演算子
    3. C++ フレンド関数とフレンド クラス
    4. C プログラミング演算子
    5. C++ の配列 |宣言する |初期化 |配列へのポインタの例
    6. 例による配列の C++ 動的割り当て
    7. C++ 演算子のオーバーロードと例
    8. C++ 関数とプログラム例
    9. C チュートリアル
    10. C++ オーバーロード (演算子と関数)
    11. C++ のポリモーフィズム