ぷうさん

ZZzzZZzzzz….


博士「怒」

くおりゃー!
勉強をし始める前に既に寝落ちとは何事じゃ!!


困った顔のぷうさん

昨日あれだけがんばったのだから今日ぐらい


博士「×」

却下じゃ、二日目にして何を言っているじゃ。
そら授業をはじめるぞい!!

変数に割り振られるアドレスについて

ぷうさん「?」

は?変数に住所が?
それってひょっとしてコンピュータの中、メモリの中だったりしてえ?


博士「ここをチェックじゃ」

そのと~り!!


ぷうさん

なんだつまらん!
で、住所がどうしたって?変数にお手紙でも書くの?
あっ、分かった!赤紙召集で呼ばれて関数のところへ行き、戦うってわけだ!


困った顔の博士

あのぉ・・・ひょっとしてネジが数本飛んでるんじゃないかの?


ぷうさん「OK」

いいえ~いつものこってす。・・・Never mind!!


困った顔の博士

まあじょさんもよくこんな人にCを勧めたもんじゃで。
どうせ教えるならもっと教え甲斐のある人の方が・・・・


ぷうさん「?」

何々?


博士

いいや、別に。

実行文

#include <stdio.h>
main()
{
   int kazu=10;
   int hairetu[3]={20,30,40};
   int kotae=50;

   printf("address:%d kazu=%d\n",&kazu,kazu);
   printf("address:%d hairetu[0]=%d\n"&hairetu[0],hairetu[0]);
   printf("address:%d hairetu[1]=%d\n"&hairetu[1],hairetu[1]);
   printf("address:%d hairetu[2]=%d\n"&hairetu[2],hairetu[2]);
   printf("address:%d kotae=%d\n",&kotae,kotae);
}

実行結果

address:3588 kazu=10
address:3582 hairetu[0]=20
address:3584 hairetu[1]=30
address:3586 hairetu[2]=40
address:3580 kotae=50

博士「ここをチェックじゃ」

実行環境によってアドレスは異なってくるぞい。

変数名 メモリ アドレス
kotae 50 3580番地
3581番地
hairetu[0] 20 3582番地
3583番地
hairetu[1] 30 3584番地
3585番地
hairetu[2] 40 3586番地
3587番地
kazu 10 3588番地
3589番地

チェックポイント








博士「ここをチェックじゃ」

コンピュータには、データやプログラムを記憶しておく装置として、メモリ(主記位装置)と呼ばれるものがあるんじゃ。
まあ、コインロッカーがたくさん並んでいると思ってくれればよい。


ぷうさん「(^^♪」

お金は要らないけどね☆


博士「怒」

ちゃかすでない!!

一つのロッカーには決まったビット幅のデータを記憶することができるんじゃ。
そしてそれらには番号がついておるんじゃ、それがアドレス・・・つまり番地なのじゃ。

そして、「int kotae 」と宣言すると同時にメモリのどこかのロッカーが、kotaeの値を記憶する為に使われるのじゃ。
つまり「kotaeは3580番地を使うぞ」という変数のアドレス管理リストが内部にできているわけなんじゃな。

博士

・・・つまり。


ぷうさん

つまらんよ~・・・・


博士「ここをチェックじゃ」

・・・・とにかくじゃ、「&変数名」でその変数のアドレスを表すという事だけでも覚えておくのじゃぞ!
でないと話を進ませようにも進ませようがないからの!


ぷうさん「(^^♪」

ふぉーい!
・・・でポインタの登場はまだ?


困った顔の博士

ちょっと待たんか、何事も順番じゃ。
その二の中盤に登場するぞい。という訳でその二にいくぞい。

その二 変数とポインタへ

二日目 ポインタについて 目次

一日目へ

ぷうさんの七日間戦争 二日目

三日目へ