C言語なら俺に聞け(入門篇) Part 32
■ このスレッドは過去ログ倉庫に格納されています
0620デフォルトの名無しさん
2008/07/22(火) 03:09:09�@char c[][5] = {"hoge", "piyo"};
�Achar *c[] = {"hoge", "piyo"};
�Bchar **c = {"hoge", "piyo"};
これらはどこが違うんですか?�Bはエラーになりますよね
────────────────────────────────────────
char **pp;
pp = c;
こういう風にできないのはなぜでしょう?�@はエラーになりますよね
────────────────────────────────────────
char *c[] = {"hoge", "piyo"};
char **pp;
pp = c;
�@printf("%s", &pp);
�Aprintf("%s", pp[0]);
────────────────────────────────────────
この�Aが正しいのは直感的に分かるのですが、�@がおかしなことになるのは何故でしょう?
&ppは「ポインタのポインタ」の所持する値(アドレス)のポインタ(アドレス)を指し、
そのアドレスは"hoge"の先頭だと思っていたのですが。
どうも理解していたつもりが、全然理解できていなかったようです。
■ このスレッドは過去ログ倉庫に格納されています