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言語