-3

Cの配列ポインタとポインタ配列の違いは何ですか?

4

2 に答える 2

2

配列ポインターは配列を指し、ポインター配列はポインターの配列であり、どこかを指している可能性があります。

int array[10]; // `array` is an array pointer

int* pointers_array[10];
于 2013-03-28T08:51:44.130 に答える
2

配列ポインタは、配列を参照するポインタです。ポインター演算を使用してアイテムにアクセスできます。逆方向では、ポインターを使用して配列方法でアイテムにアクセスできます。

 int array [20];
 int a = *(array + 10);
 int b = array[10];

 int *p;
 p = array;

 int c = *(p + 10);
 int d = p[10];

すべてのアプローチが機能し、a、b、c、d は同じ値になります。ただし、さまざまなアプローチを慎重に使用してください。配列と p の違いは

 p ++; // allowed
 array ++; // fail

ポインターの配列は、配列項目がポインターであることを意味します(ただし、どのタイプへの)。

 char* parray[20];

この配列は、「char」または解釈に応じて「strings」への 20 個のポインターを保持します。

したがって、parray はchar ポインターの配列の配列ポインターです。

于 2013-03-28T09:10:57.253 に答える