目次
概要
C++の学習において、「ポインタ」は避けて通れない重要な概念です。ポインタを理解することで、メモリの仕組みや変数の操作方法を深く知ることができるようになります。
本記事では、C++におけるポインタの基本的な仕組みと、その確認方法を、シンプルなサンプルコードを通じて丁寧に解説いたします。
サンプルコード
#include <iostream>
using namespace std;
int main()
{
int number;
int* ptrNumber;
number = 10;
ptrNumber = &number;
cout << "変数numberの値は " << number << " です。" << endl;
cout << "変数numberのアドレス(&number)は " << &number << " です。" << endl;
cout << "ポインタptrNumberの値は " << ptrNumber << " です。" << endl;
return 0;
}
コード解説
int number;
- 整数型の変数
number
を宣言しています。
int* ptrNumber;
- 整数型のポインタ変数
ptrNumber
を宣言しています。 - このポインタは、
int
型の変数のアドレスを保持するためのものです。
ptrNumber = &number;
&number
は変数number
のアドレスを取得する演算子です。ptrNumber
にそのアドレスを代入しています。
cout << ...
による出力
出力内容 | 説明 |
---|---|
number の値 | 単なる整数(例:10)が表示されます |
&number (アドレス) | メモリ上のアドレス(例:0x61fe14 )が表示されます |
ptrNumber の値 | &number と同じアドレスが表示されます |
このように、ポインタを使うことで、変数がメモリ上のどこに存在しているかを直接確認することができます。
ポインタの基本ルール
*
は「ポインタ型」を表す宣言で使います。&
は「アドレス演算子」で、変数のアドレスを取得します。*ポインタ変数名
によって、そのアドレスに格納されている実際の値を取得・操作することができます(今回は未使用)。
応用例
ポインタは以下のような場面で活用されます。
- 関数で引数を参照渡しする場合(Call by Reference)
- 動的メモリ確保(
new
/delete
) - 配列や文字列の操作
- ハードウェア制御や低レベルな処理
まとめ
本記事では、C++のポインタの基本構造について、次のポイントに沿って解説いたしました。
- 変数のアドレスを
&
演算子で取得できる - ポインタ変数にはそのアドレスを格納できる
cout
でポインタと変数のアドレスを比較できる
ポインタは難しそうに見えますが、「変数のアドレスを操作できる特別な変数」として考えると、理解が進みやすくなります。まずは基本をしっかり押さえて、次のステップへと進みましょう。