- ベストアンサー
配列を確保したときのアドレス
レポートなんですが 例えば、 char a[4][8]; と配列を取ったときのアドレスは、メモリにもよると思うんですが a[0][0]=aaaaa1 a[0][1]=aaaaa2 ・ ・ ・ a[0][7]=aaaaa8 a[1][0]=bbbbb1 ・ ・ a[1][7]=bbbbb8 ・ ・ となっていって、ここでa[0],a[1],a[2]・・・・のアドレスは a[0]はa[0][0]と同じで、a[1]はa[1][0]と同じなると思うんです。 それで、2次元配列a[i][j]でa[i]はどんな役割をしているかって問題にはなんと答えたらいいんでしょうか? 先頭のアドレスを表しているだけではあまりにもそっけないんでもう少しなんか書きたいのでアドバイスお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> となっていって、ここでa[0],a[1],a[2]・・・・のアドレスは > a[0]はa[0][0]と同じで、a[1]はa[1][0]と同じなると思うんです。 びみょーに違います。 a[0]'の'アドレスというより、a[0]'が'アドレスを表しています。 a[0] == &a[0][0] a[1] == &a[1][0] ... a[x] は x行目の先頭アドレス。 だから a[x][y] は x行目の先頭からy離れた位置にある要素、つまり x行y列にある要素 となります。
その他の回答 (2)
- kmor
- ベストアンサー率27% (225/825)
各要素の先頭、でだめでしょうか。 二次元配列についての知識はおありのようなので失礼かと思いますが、以下のように簡単に説明すると、 1年という学年がある。 その学年には6クラスある。 各クラスには30人生徒がいる。 これを配列で示すと、 1年[6クラス][30人] となりますね。 30人ずつ集まった要素が6クラスある、ということで、各要素の先頭でいいと思いますが。
- panda0000
- ベストアンサー率35% (59/165)
a[i]のaが、a[0]のポインタであるように、 a[i][j]のa[i]が、a[i][0]のポインタですよね。 それ以上のことって、ないような気がします。(^^; 回答にならなくてすみません。
お礼
回答ありがとうございました。 お礼が遅れてしまってすいませんでした。ついでに締め切るのも…