1

ポインタを理解するのに少し苦労しています。多次元配列を宣言した場合char ma[10][30]。要素のアドレスは"ma[2][20]"? アドレスをポインター変数に割り当てる必要がある場合は、そうではありません"p = &ma[2][20]"。)

4

3 に答える 3

2

のアドレスは文字配列でma[2][20]あるma[2] + 20 ためma

またはp = &(ma[2][20])-括弧が重要であることを確認してください...

于 2013-02-11T04:03:10.110 に答える
1

多次元配列は、実際にはメモリの連続したチャンクです。この場合、配列は 10*30 = 300 バイトの文字 (バイト) のチャンクです。コンパイラは、2 つの「次元」を介してこの配列へのアクセスを処理しています。

ma[2][20] のアドレスは、'ma' + 2*30 + 20 または 'ma+80' バイトのアドレスです。「ma」は、配列を表すメモリのチャンクの開始アドレスです。

于 2013-02-11T04:05:58.357 に答える
0

静的配列では、メモリ割り当ては連続しています。次の例で詳しく説明できます int arr[2][5]= { {1,2,3,4,5}, {6,7,8,9,10}}; カウト<

于 2013-02-23T14:50:11.627 に答える