C++でポインタから変数の値を取得する方法【間接参照の基本】

目次

概要

C++では、「ポインタ」を使うことで、変数のメモリアドレスに直接アクセスし、その値を取得または操作することができます。これにより、より柔軟で効率的なプログラミングが可能になります。

本記事では、**ポインタを使って変数の値を取得する基本的な方法(間接参照)**について、シンプルなコードとともに丁寧に解説いたします。

サンプルコード

#include <iostream>
using namespace std;

int main()
{
    int number;
    int* ptr;

    number = 20;
    ptr = &number;

    cout << "変数numberの値は " << number << " です。" << endl;
    cout << "変数numberのアドレスは " << &number << " です。" << endl;
    cout << "ポインタptrの値は " << ptr << " です。" << endl;
    cout << "*ptr の値は " << *ptr << " です。" << endl;

    return 0;
}

コード解説

int number;

  • 整数型の変数を宣言します。

int* ptr;

  • 整数型のポインタ変数 ptr を宣言します。
  • このポインタは、整数型の変数のアドレスを格納するためのものです。

ptr = &number;

  • &number は、変数 numberメモリアドレスを取得する演算子です。
  • このアドレスを ptr に代入しています。

*ptr

  • アスタリスク(*)を付けることで、ポインタが指すアドレスに格納されている値(中身)を取得できます。
  • この操作を「間接参照(dereference)」と呼びます。

実行結果のイメージ

plaintextコピーする編集する変数numberの値は 20 です。
変数numberのアドレスは 0x7ffee7c88a4c です。
ポインタptrの値は 0x7ffee7c88a4c です。
*ptr の値は 20 です。
  • &numberptr の値(アドレス)は一致しています。
  • *ptr の値は number の値と同じです。

ポインタの用語まとめ

用語意味
&変数名変数のアドレスを取得する(アドレス演算子)
*ポインタ変数名ポインタが指すアドレスの値を取得する(間接参照)
int*整数型のポインタ型

応用例

  • 関数にアドレスを渡して直接値を変更する(参照渡し)
  • 配列操作(ポインタと配列の関係)
  • 動的メモリ確保(new / delete
  • 構造体やクラスの操作(ポインタメンバーへのアクセス)

まとめ

本記事では、**ポインタから変数の値を取得する基本的な方法(間接参照)**についてご紹介いたしました。

表現意味
ptr = &x変数 x のアドレスをポインタに代入
*ptrptr が指すアドレスの値を取得

ポインタを正しく理解することで、C++のメモリ操作や効率的な関数呼び出しなど、より高度な技術への足掛かりになります。ぜひ実際に手を動かして確認してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次