ポインタを使った 2 つの数値の加算

CBeginner
オンラインで実践に進む

はじめに

C 言語プログラミングでは、ポインタを使って変数のアドレスを扱います。ここでは、C 言語でポインタを使って 2 つの数を足す方法を学びます。

注意:コーディングの練習や gcc を使ったコンパイルと実行の方法を学ぶために、~/project/main.c ファイルを自分で作成する必要があります。

cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main

変数を宣言する

プログラムの最初に、3 つの変数を宣言します。ユーザーの入力を格納する 2 つの整数型変数と、これら 2 つの整数型変数を指すために使用する 1 つの整数型ポインタ変数です。以下はそのコードです。

int first, second, *p, *q, sum;

ユーザー入力を取得する

ここでは、ユーザーから 2 つの整数を取得する必要があります。これには、以下に示すように scanf() 関数を使用します。

printf("Enter two integers to add using pointers: ");
scanf("%d %d", &first, &second);

変数を指すようにする

次に、先ほど宣言した整数型変数(firstsecond)を指す 2 つのポインタを宣言します。& 演算子を使って整数型変数のアドレスを取得し、それをポインタに格納します。以下にそのコードを示します。

p = &first;
q = &second;

ポインタを使って数値を加算する

これで整数を指すポインタが用意できたので、ポインタを使ってそれらの値にアクセスし、足し合わせることができます。以下はそのコードです。

sum = *p + *q;

上記のコードでは、* 演算子が pq が指すアドレスに格納されている値(つまり最初と 2 番目の整数)を取得します。

結果を出力する

最後に、以下に示すように printf() 関数を使って結果を出力します。

printf("The sum of the entered numbers is: %d", sum);

まとめ

この実験では、C 言語でポインタを使って 2 つの数値を足す方法を学びました。2 つの整数型変数と、それらの整数を指す 1 つの整数型ポインタ変数を宣言しました。その後、scanf() を使って整数の値を取得し、ポインタを使ってそれらを足し合わせました。最後に、printf() を使って合計を出力しました。