配列の値のとり方
例えば以下のようなデータがあるとき、
char *month[] = {"January", "February", "March" , "April" , "May" , "June" , "July" , "August" , "September", "October", "November", "December" ,};
"March"の1文字目 M を取るとき、以下のようには書けない。
month[2][0] /* エラー */
以下のように書けば、大丈夫。
/* ポインタのポインタとして書く */ *(*(month + 2) + 0) /* ポインタと配列の組み合わせで書く*/ *(month[2] + 0) (*(month + 2))[0] /* 二次元配列っぽく書く*/ (month[2])[0]
問題は、どのパターンが一番分かりやすいのかがよく分からないところ。
真ん中の2つはないと思うけど、ポインタで書くのと配列で書くのとどっちがいいんだろう?
ポインタ派の方が主流のような感じがするけど、僕は配列で書くほうが分かりやすいと思う。
ただし、ポインタ自体をインクリメントしまくるときは、当然ポインタで書くことになる。
用途によって適切に使い分けられれば良いけど、その辺の加減がよく分からんなー。