c
1#include <stdio.h> 2 3int main() { 4 char c = 'A'; 5 char *cp = &c; 6 printf("%p\n", &c); 7 printf("%p : %p", &cp, cp); 8}
はじめてのCプログラミングというかなり古い本で、上記のようなコードが出てきました。
(質問用に少し改ざんしている)
実行してみると、cpと&cpが違う実行結果になり、&cpが指し示すアドレスがcpよりも前のアドレスになるんですが、&cpで表示されるアドレスってどこを指し示してるんでしょうか?
また、変数やら配列のアドレスは、メモリが確保した一番初めのアドレスを指し示してると思うのですが、それより前のアドレス指し示しているという事は、エラーが起きないだけで、あまり望ましくない/使わない操作という事なのでしょうか?
わかる方いらしたらよろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。