C言語の多次元配列
int hoge[5];
hoge[a]=10;
と
int hoge[5];
*(hoge+a)=10;
が等価であるのはK&Rの第5章に書いてあるとおりですが、
int hoge[2][5];
hoge[a][b]=10;
と
int hoge[2][5];
*(hoge+a*5+b)=10;
が等価であることをどこかに書いてあるのでしょうか……。2つ目の例から判るとおり、最初の要素数以外は確定していないと実際にアクセスできないことからも同等なのは明らかなのですが、当のK&Rから記述を見つけることができませんでした。
うーむ、明確な仕様はANSIにはあるのかなぁ?
等価じゃねっす。師匠につっこまれてあわてて検証しました。なんで等価と勘違いしたのかは後ほど。