質問: 777; printf("変数test02の値は・・・%d",point_test02); ### 試したこと 現在おさえていること ・ポインタとは アドレスを扱うための3つの機能の総称 ・ポインタ型:int型とかdouble型とか ・ポインタ値:アドレス値は同じ意味 ・ポインタ変数:よく出てくる *pとか ・ポインタ変数には 2つのモードがある ・int *p ← ポインタ変数モード、アドレス値しかもてない p ← 通常変数モード これで数字を入れたり計算をすると ポイントの示す先が書き換わる ### 補足情報(言語/FW/ツール等のバージョンなど) ソースコードの実行結果は以下になりました。 000000000022FE10 000000000022FE14 000000000022FE0C 00000000002F7AD1 //*pのアドレス 000000000022FE00 //&pのアドレス 000000000022FDB0 000000000022FDB0 ------------実験-------------- 変数testのもともとの値は・・・100 変数testの値は・・・10 変数test02のもともとの値は・・・1000 変数test02の値は・・・777 *pと&pのアドレスがなぜ別々になっているのでしょうか?
回答: > > int *p = &a; > > と上記のような書き方をしては、だめなのでしょうか? > > > これでも大丈夫です。 > > *p = &p = p ←の3つのPは同じ意味でしょうか > > > 全て違います。 次のようなメモリ配置だとします(左側は番地(アドレス)、右側は値) 1000|10 1001|20 1002|30 1003|40 1004|p(1000) こうなります。 *p = 10 &p = 1004 p = 1000