目次
概要
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 です。
&number
とptr
の値(アドレス)は一致しています。*ptr
の値はnumber
の値と同じです。
ポインタの用語まとめ
用語 | 意味 |
---|---|
&変数名 | 変数のアドレスを取得する(アドレス演算子) |
*ポインタ変数名 | ポインタが指すアドレスの値を取得する(間接参照) |
int* | 整数型のポインタ型 |
応用例
- 関数にアドレスを渡して直接値を変更する(参照渡し)
- 配列操作(ポインタと配列の関係)
- 動的メモリ確保(
new
/delete
) - 構造体やクラスの操作(ポインタメンバーへのアクセス)
まとめ
本記事では、**ポインタから変数の値を取得する基本的な方法(間接参照)**についてご紹介いたしました。
表現 | 意味 |
---|---|
ptr = &x | 変数 x のアドレスをポインタに代入 |
*ptr | ptr が指すアドレスの値を取得 |
ポインタを正しく理解することで、C++のメモリ操作や効率的な関数呼び出しなど、より高度な技術への足掛かりになります。ぜひ実際に手を動かして確認してみてください。