C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++でポインタ演算を使って配列要素の合計を求める方法

この記事では、C++においてポインタ演算を利用して配列要素の合計を求めるプログラムを紹介します。C++では配列名は先頭要素へのポインタとして扱えるため、*(ptr + i) のように記述することで、添字演算子を使わずに各要素へアクセスできます。

アルゴリズム

開始
    ユーザーからの入力値で配列要素を初期化する
    合計を格納する変数 s を 0 で初期化する
    i = 0 から 6 まで繰り返す
        s = s + *(ptr + i)
    変数 s に格納された合計値を出力する
終了

サンプルコード

#include<iostream>
using namespace std;
int main() {
    int a[7], i, s = 0;
    int *ptr;
    cout << "数字を入力してください: ";
    for (i = 0; i < 7; i++) {
        cin >> a[i];
    }
    ptr = a;
    for (i = 0; i < 7; i++) {
        s = s + *(ptr + i);
    }
    cout << "\n配列要素の合計: " << s;
}

実行結果

数字を入力してください: 1 2 3 4 5 6 7
配列要素の合計: 28

解説

ポイントとなるのは ptr = a; の部分です。C++では配列名は先頭要素のアドレスを表すため、ポインタ ptr に代入すると、ptr は配列の先頭を指すようになります。

*(ptr + i) は「ptr から i 要素分進んだアドレスが指し示す値」を意味します。ポインタに整数を加算すると、そのデータ型のサイズ(int 型の場合は通常4バイト)単位でアドレスが移動するため、これは配列の i 番目の要素へのアクセスと完全に等しくなります。つまり *(ptr + i)a[i] と同じ結果をもたらします。

この仕組みを利用すれば、添字を使わずにポインタだけで配列を順番に走査し、すべての要素の合計を効率的に計算することが可能です。

  1. C++でポインタ演算を使って配列要素の合計を求める方法

    この記事では、C++においてポインタ演算を利用して配列要素の合計を求めるプログラムを紹介します。C++では配列名は先頭要素へのポインタとして扱えるため、*(ptr + i) のように記述することで、添字演算子を使わずに各要素へアクセスできます。 アルゴリズム 開始 ユーザーからの入力値で配列要素を初期化する 合計を格納する変数 s を 0 で初期化する i = 0 から 6 まで繰り返す s = s + *(ptr + i) 変数 s に格納された合計値を出力する 終了 サンプルコード #include<iostream> using

  2. C++入門:ポインタを使って配列の要素にアクセスする方法

    ポインタとは、変数のメモリ上の位置(アドレス)を格納するための特殊な変数です。言い換えれば、ポインタは特定のメモリ位置を参照しており、そのメモリ位置に格納された値を取得することを「デリファレンス(間接参照)」と呼びます。まずは、ポインタを使用して配列の単一の要素にアクセスする基本的なプログラムを見てみましょう。例1:配列の1つの要素にアクセスする#include <iostream> using namespace std; int main() {     int arr[5] = {5, 2, 9, 4, 1};