0

重複の可能性:
配列名は C のポインターですか?

Cのpとの違いは何ですか?a

float a[10],*p; p=a;
4

2 に答える 2

2
float a[10],*p; p=a;

aの配列10ですfloat

pへのポインタfloatです。の最初の要素を指しaます。

Cでは、配列はポインタではありません。配列とポインタは2つの異なるタイプです。例えば:

sizeof a;   // compute the size of an array
sizeof p;   // compute the size of a pointer

p = &a[1];  // this is valid, p points to the second element of a
a = &p[1];  // this is not valid, you cannot assign to an array
于 2013-02-03T23:00:25.290 に答える
2

「差」を引き算の結果と定義すると、答えは0 です

assert((p-a) == 0);

...他のポインタ値を代入するまでp(aポインタ変数に名前を付けないため、これはできません。適切なコンテキストでポインタに減衰する配列に名前を付けます。たとえば、他のコンテキストがありますsizeof(p)!=sizeof(a))。

于 2013-02-03T22:56:20.947 に答える