• ベストアンサー

配列を確保したときのアドレス

レポートなんですが 例えば、 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]はどんな役割をしているかって問題にはなんと答えたらいいんでしょうか? 先頭のアドレスを表しているだけではあまりにもそっけないんでもう少しなんか書きたいのでアドバイスお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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列にある要素 となります。

CAFELECHE
質問者

お礼

回答ありがとうございました。 お礼が遅れてしまってすいませんでした。ついでに締め切るのも…

その他の回答 (2)

  • kmor
  • ベストアンサー率27% (225/825)
回答No.2

各要素の先頭、でだめでしょうか。 二次元配列についての知識はおありのようなので失礼かと思いますが、以下のように簡単に説明すると、 1年という学年がある。 その学年には6クラスある。 各クラスには30人生徒がいる。 これを配列で示すと、 1年[6クラス][30人] となりますね。 30人ずつ集まった要素が6クラスある、ということで、各要素の先頭でいいと思いますが。

  • panda0000
  • ベストアンサー率35% (59/165)
回答No.1

a[i]のaが、a[0]のポインタであるように、 a[i][j]のa[i]が、a[i][0]のポインタですよね。 それ以上のことって、ないような気がします。(^^; 回答にならなくてすみません。

関連するQ&A

専門家に質問してみよう