配列はどのように動作するのでしょうか?私は仮説で終わり、私が正しいかどうかを知りたいと思います。配列はc/C++でどのように内部的に動作するのですか
アレイは隣接するメモリケース(ボックス)のシーケンスであり、各ボックスはストックタイプのサイズを持ちます(つまり、INTの1つのボックスにsize = sizeof(int)、3つのINTsの配列メモリ内の3つのsizeof(int)に隣接する)
ここで、特定の型の配列(Cではmalloc、C++ではnew)に動的にメモリを割り当てることができます。
私は、配列が配列の最初のボックスのアドレスと最初の値(後のボックスの値)をブラケット[0]で呼び出すときにorigin配列が "型*配列"または "型配列[]"または "型配列[サイズ]"と宣言されているかどうか)を定義するかどうかにかかわらず、その配列は "0" == *(配列+ 0)ポインタまたは配列( "type * array"または "type array []"または "type array [size]")は、最初のボックスのアドレスです。
大括弧([])で宣言されていても、配列は実際にはメモリ内にn個のポインタのシーケンス(アドレスとしてではなく値として持つ) )実際の値+これらのメモリボックス(B0、...、Bnそれぞれが実際の値を含む)を含むメモリボックスBiのアドレス。 "int array [5]"を宣言すると、プログラムは実際にコンピュータメモリB0、B1、...の全域に散在するintポインタP0、P1、...、P4と5 intサイズのメモリ場所の5つの隣接ボックスを実際に割り当てる。 ..パイの値はバイ
のアドレスであるB4は、私が正しいか間違っている!! ??ありがとうございました!このように、それの
いいえ、 'int * arr []'を持たない限り、配列は実際の整数を持ちます。 – chris
+1の画像: –
[comp.lang.c FAQ](http://www.c-faq.com/)のセクション6を読んでください。 –