C++の関数の引数にポインタ変数を使用したサンプルです。
目次
サンプル | 関数の定義を記述 (calc.hファイル) |
関数の内容を記述 (calc.cppファイル) | |
関数を使用する (test1.cppファイル) |
説明用として3つのファイルがあります。(calc.h、calc.cpp、test1.cpp)
1.関数の定義を記述 (calc.hファイル)
関数の定義を記述しているファイルです。
bool calc(int arr[], int num, int* answer);
引数のanswerはポインタ変数です。先頭にアスタリスク(*)がついています。
2.関数の内容を記述 (calc.cppファイル)
関数の内容を記述しているファイルです。
bool calc(int arr[], int num, int * answer)
{
int sum = 0;
int i;
for (i = 0; i < num; i++) {
sum += arr[i];
}
// ポインタ変数にデータの値を格納
*answer = sum;
}
1行目の引数の*answerはポインタ変数です。先頭にアスタリスク(*)がついています。
10行目は、ポインタ変数にデータの値を格納を格納しています。
3.関数を使用する (test1.cppファイル)
関数を使用するファイルです。
#include "calc.h"
#include <iostream>
using namespace std;
#define num 5
int main() {
int arr[num] = { 1,2,3,4,5 }; //配列
int answer = 0;
calc(arr, num, &answer); //関数呼び出し
cout << "address : " << &answer << "\n";
cout << "sum : " << answer << "\n";
return 0;
}
11行目の関数呼び出しの引数の&answerはポインタ変数です。アンパサンド(&)がついています。変数のアドレスを指します。
12行目は、アドレスが表示されます。
13行目は、関数の処理結果として値を表示します。
実行結果
以下のようにアドレスと処理結果の値が表示されます。
関連の記事