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