アドレス演算子
CoddyのC++ジャーニー「論理と制御フロー」セクションの一部 — レッスン 2/56。
ポインタとは何かを理解したところで、変数のメモリ番地を実際に取得する方法を学ぶ必要があります。ここで、アドレス演算子 (&) の出番です。
アドレス演算子 & は、変数名の前に置くことで、そのメモリ・アドレスを取得します。&variable_name を使用すると、その変数が格納されているメモリ上の場所が返されます。
int number = 42;
int* ptr = &number; // ptrはnumberのアドレスを格納するようになりましたこの例では、&number は変数 number のメモリアドレスを取得し、そのアドレスをポインタ ptr に代入します。ポインタは値42を保持しているのではなく、42が格納されているアドレスを保持しています。
変数とそのポインタの間のこの接続は、メモリを直接操作するために不可欠です。アドレスを格納しているポインタがあれば、それを使用して元の変数に間接的にアクセスしたり、変更したりすることができます。
チャレンジ
簡単整数変数とポインタを使用して、アドレス演算子を実演するプログラムを作成してください。
score という名前の整数変数を宣言し、値 85 で初期化します。
アドレス演算子を使用して score 変数のメモリ番地を格納する、scorePtr という名前のポインタを作成します。
ポインタに格納されているメモリ番地を、次の形式で出力してください:
Address: [memory address]メモリ番地は、C++で一般的に表示される形式である16進数形式(0x7fff5fbff6ac など)で表示されます。
チートシート
アドレス演算子 & は、変数のメモリ番地を取得するために使用されます:
int number = 42;
int* ptr = &number; // ptr は number のアドレスを格納します&variable_name を使用すると、その変数が格納されているメモリ上の場所を返します。ポインタには、変数の実際の値ではなく、アドレスが含まれます。
自分で試してみよう
#include <iostream>
using namespace std;
int main() {
// TODO: 以下にコードを書いてください
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。