0

次のような文字ポインタがあるとします。

static char *example[]={"doctor","who","hello"};

この例で何が起こっているのか、私は少し混乱しています。

  1. ポインターexampleは単に独自のアドレスを持っていますか?

  2. 配列内にある文字列には、*example
    それぞれ異なるメモリアドレスがありますか?

  3. ポインターexampleは単に各アドレスを参照し、文字列の宣言で示されているように各アドレスの内容を初期化するだけですか?

私は C を数か月しか使用していないので、基本的なことを理解しようとしているところですが、C の最も重要な側面はポインターだけだと聞いています。

4

4 に答える 4

5

変数exampleは単に独自のアドレスを持っていますか?

はい、変数には独自のアドレスがあります。

配列内にある文字列には、*example それぞれ異なるメモリアドレスがありますか?

はい、各文字列には、互いに異なる独自のアドレスがあります。変数のアドレスとも異なりますexample。ただし、式*exampleは変数 と同じではありませんexample。次を参照してください。

ポインターの例は、単に各アドレスを参照し、文字列の宣言で示されているように各アドレスの内容を初期化するだけですか?

変数は、 (アドレスではなく) のが配列のアドレスでexampleあるという意味で、文字列の配列を参照します。example

于 2013-09-02T21:17:47.213 に答える
0

宣言すれば

char *example[] = {"doctor","who","hello"};

それぞれが 1 つの char* ポインターを保持する、サイズ 3 の配列を取得します。と同じです

char *example[3] = {"doctor","who","hello"};

しかし、答えるにはコード内で example がどのように宣言されているかを確認する必要があります。

于 2013-09-02T21:19:13.080 に答える