メモリのアドレス


メモリは1バイトずつ区分けされており、これらには0番地、1番地、2番地、... というような独自の住所が割当てられいます。この住所のことをアドレス(address)といいます。

&変数名

例えば「&a」は変数 a が保存されているメモリの番地、つまりアドレスを意味しています。「&」のことをアドレス演算子(address operator)といいます。「アンパサンドのアはアドレスのア」と覚えておくと忘れません。

printf 関数でアドレスを表す書式指定フィールドは「%p」です。

ソースコード

源文件
  1|/* address01.c */
  2|
  3|#include <stdio.h>
  4|
  5|int main(void){
  6|  char c;
  7|  int i;
  8|  double d, e;
  9|
 10|  printf("変数cのアドレスは%pです\n", &c);
 11|  printf("変数iのアドレスは%pです\n", &i);
 12|  printf("変数dのアドレスは%pです\n", &d);
 13|  printf("変数eのアドレスは%pです\n", &e);
 14|                                                                            
 15|  return 0;
 16|}

実行結果

変数cのアドレスは0x7fff5fbff60fです
変数iのアドレスは0x7fff5fbff608です
変数dのアドレスは0x7fff5fbff600です
変数eのアドレスは0x7fff5fbff5f8です


「0x7fff5fbff60f」のように16進数で表示されているのが、変数が置かれているアドレスです。ただし、この結果は環境によって異なります。

Chapte6 @ C言語目録 @ HomeWork List @ 昭亮's Homepage