FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ポインタの続き~

昨日の続きですね~

ではさらに下を見ていきましょう
printf("iの値は?;%d\n", i);
iという変数の内容を画面に表示させる。というプログラムですね。
iには10という値を代入していたのでここでは「iの値は?:10」と表示されます。
では次の行はどうでしょうか?
printf("pの値は?;%d\n", *p);
ポインタ変数がつかわれていますね!
このpという変数に何をいれていたか思い出してください。
ヒント)p = &i;
そうです、iという変数の場所(つまりアドレス)をいれていましたよね?
でもここで使われているpには*がついていますねぇ。
このようにポインタ変数の前に*をつけるのはその中身を見るためのルールだそうです。
・・・・なんか自分で説明しててもわかりにくいなぁ。。
もっとわかりやすい・・・・方法はないかしら・・

例えば
int i = 10
int *p;

p = &i;

ここまで。
ここまでの考え方を。int型の箱にiが入っててそこに10が代入されてる。
じゃなくて。
intっていう大きさのiっていう家がありました。そこにはiさんが住んでいてその家には茶菓子が10個ありました。(なんじゃそりゃ。
んで2行目
int型のポインタ変数pを。intっていう大きさの訪問販売者(ポインタ変数pさん)がいましたよっと
ヨシこれでいこう。
そして3行目
ここでpにiの場所を教えてる。ですから
ポインタ変数pさんはiさんの住所を調べて玄関先まで行きました(訪問販売者デスカラ

そしてわかりにくかった
printf("pの値は?;%d\n", *p);
ポインタ変数の前に*をつけるとその中身が見れる。

ふむ。。?
つまり
訪問販売者のポインタ変数pさんは*(インターホンをならして)をつけてiさんの家に上がりこむことに成功したというわけですね!!さすがやり手!!(ナンダヨ

*は中身を見るときにはつけなければいけないルールとなっています。インターホンをおして中にはいる~といったイメージと結び付けておくと忘れないかもしれませんね!


と、イメージがかたまったところで先ほどの続きにいきましょうか!!
printf("pの値は?;%d\n", *p);
この結果から。
pさんはiさん宅にはいれたのでiさんちにおいてある茶菓子の数がわかっちゃうわけですね^^
つまり*pとかくことで「i」と書いたのと同じ意味になるというわけです
ということで*pの値は?:10と表示されます。
iという変数と:pという変数はおたがい独立した別の変数なのに「実態は同じもの」というわけです
参考文献には「これはWindowsのショートカットににている」と解説されていました
Windowsではファイルのショートカットを作る機能がありますよね?あれってショートカットを作成すると元のとは別にアイコンができるじゃないですか。でもその別のアイコンをクリックすると元のファイルが開きますよね?それと同じ意味を持つのがポインタ変数だとかいてありました

まぁ。。私の茶菓子話のほうがわかりやすいとおもいますけd  ゴホゴホ


さぁ~気を取り直して続きいきますよ~
*p -= 3
ここで行っているのは変数iと*pが同じ実態をもっているんだよ!ということの証明となるプログラムですね。
printf("iの値は?;%d\n", i);
printf("pの値は?;%d\n", *p);

実際には*pから3を引いていますのでもちろん*pの値は7になりますよね?
ではiはどうでしょうか?
iも7になります
ポインタ変数pがiの「場所を格納」しているので*pの内容を書き換えるとiそのものの値を書き換えることになるのです。
私のたとえ話でわかりやすくいうのであれば
ポインタ変数pさんは*でインターホンを押してiさん宅に入り茶菓子を3個もらって食べてしまったのでiさん宅の茶菓子は7こに変更されてしまったわけですね。
うーん。難しいんだろうけど意外とわかったかも?
明日も続きから!
がんばるぞー('A`)おー。

コメントの投稿

非公開コメント

プロフィール

しー

Author:しー
*使用ソフト*
メタセコ
Blender
modo

カレンダー
09 | 2018/10 | 11
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
WEB拍手
カテゴリ
最新コメント
検索フォーム
リンク
ブロとも申請フォーム

この人とブロともになる

いらっしゃいませ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。