[772] Re:ポインタ完全制覇
投稿者:774RR
2007/02/20 02:13:25
こたえ書いちゃうのは簡単なので、書かずに盛り上げるテスト
# この辺、ポインタ中級レベルになるのでしょうか?それとも上級?
ここはまず「配列へのポインタ」っつーものがあることを理解しなければならない。
char a[10]; という配列があるとき
&a[0] = 配列先頭要素へのポインタ右辺値 (char*)
&a = char [10] 配列へのポインタ右辺値 (Q1. この型の表記を行え)
である。これも概念レベルの問題なので理解できない人は一生理解しないままだったりする。
# A1.char(*)[10] 型。
Q1'. char(*)[10] と char *[10] の違いを述べよ
Q1". char(*)[10] 型の変数を作るにはどう記述するといい?
先の例は「配列へのポインタ」で示される先に実体が1つあるだけ。つまりよくある
char c;
char* p=&c;
と同じレベルの些細でつまらない例に該当する。だからより実用的な例に変えよう。
Q2.char b[5][10]; とするとき &b[0] の型を述べよ (答えは char[10] へのポインタ右辺値)
Q3.では b とだけ書いたら何型で何を指す? (暗黙の変換前と変換後の両者を答えよ)
Q4.では &b と書いたら何型で何を指す?
このへんがすらすら答えられるようになるなら CES さんの問題も簡単。