C++ 関数の引数がポインタ変数のサンプル

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)を表示します。

実行結果

アドレスの値はプログラムの実行ごとに異なります。

関連の記事

C++ 関数のサンプル
C++ 関数の引数に配列を使用したサンプル

△上に戻る