[C/C++]ポインタについて

C/C++のポインタについて簡単にまとめていきます。

ポインタ

& : アドレス演算子

&aで、変数aが保持されているメモリのアドレスが分かる。

以下のプログラムを実行すると、メモリのアドレスが出力される。

int a=1;
    cout << &a << endl;

結果は、例えば0x7fffb6016d64と表示される。

コンパイルの度に変わる。

* : ポインタ宣言子

アドレスを格納するための変数のことを「ポインタ」という。

ポインタを宣言するとき、ポインタ宣言子「*」を使う。

int a=1;
int *p;
p = &a;

cout << "p:" << p << endl << "aのアドレス:" << &a << endl;

この結果は、例えば

p:0x7ffdc81f2d84
aのアドレス:0x7ffdc81f2d84

のような結果になる。

* : 間接参照演算子

間接演算子は、ポインタに格納されているものを参照する演算子である。

int a=1;
int *p;
int b;
p = &a;
b = *p;

    
cout << "pを間接参照:" << *p << endl << "b:" << b << endl;

実行結果は、
pを間接参照:1
b:1
となります。

参考書