0

C の配列に関する私の理解は正しいですか? 配列は、たとえば、C コードで配列を宣言するときに、構文上の利便性にすぎません。

type my_array[x];

コンパイラはそれを次のものと同等のものと見なします。

type *my_array = malloc(sizeof(*my_array) * x);

のスコープを離れるfreeと解放されるシステム コールを使用します。my_arraymy_array

my_array宣言したら

my_array[y];

それ以上のことはありません:

*(my_array + y)

これを文字列に置き換えます。私はまた、カーテンの後ろで何が起こっているのだろうと思っていました

char *my_string = "Hello"

my_string = "Hello"
4

3 に答える 3

1

いいえ!

type array[n]スタックに格納された変数です

type *arrayスタックにも格納されるポインター変数です。しかしarray = malloc(sizeof(*array) * n);、ヒープ上のいくつかのデータを指すようになった後

于 2013-09-19T00:33:48.833 に答える
0

アヒルのように歩き、アヒルのように泳ぎ、アヒルのように飛ぶなら、それはアヒルです。

それでは、見てみましょう。正しく説明したように、配列とポインターにはいくつかの共通の属性がありますが、いくつかの違いがあることがわかります。詳細はこちらをご覧ください

于 2013-09-18T23:20:28.210 に答える