C言語でのポインタ配列と配列ポインタの違いとは
C言語ではポインタ配列と配列ポインタは異なる概念だ
- データ型 * 配列名[長さ];
例え:
int *ptrArray[5]; // 声明了一个指针数组,每个元素都是整型指针
char *strArray[3]; // 声明了一个指针数组,每个元素都是字符型指针
- データ型 *(ポインタ名)[長さ];
たとえば
int arr[5] = {1, 2, 3, 4, 5}; // 声明了一个整型数组
int (*ptr)[5]; // 声明了一个指向整型数组的指针
ptr = &arr; // 数组指针指向了arr数组的首地址
总结:
- ポインタ配列とは、各要素がポインタ型の配列のことである。
- 配列ポインタは配列の最初のアドレスを指すポインタである。
- ポインタ配列は配列を指すポインタを保持できますが、配列ポインタは特定の種類の配列のみを指すことができます。
- ポインタ配列の要素には個別代入ができるが、配列ポインタは配列の存在が前提である。