C语言中,指针数组和数组指针是两种不同的概念。
- 指针数组(Pointer Array):指针数组是一个数组,其中的元素都是指针类型。它可以被认为是一个存储了指针的数组,每个指针可以指向不同的数据类型或地址。指针数组的声明方式为:`dataType *arrayName[length];`
例如:
int *ptrArray[5]; // 声明了一个指针数组,每个元素都是整型指针
char *strArray[3]; // 声明了一个指针数组,每个元素都是字符型指针
- 数组指针(Array Pointer):数组指针是一个指针,它指向一个数组的首地址。通过数组指针,可以对整个数组进行操作。数组指针的声明方式为:`dataType (*pointerName)[length];`
例如:
int arr[5] = {1, 2, 3, 4, 5}; // 声明了一个整型数组
int (*ptr)[5]; // 声明了一个指向整型数组的指针
ptr = &arr; // 数组指针指向了arr数组的首地址
总结:
- 指针数组是一个数组,其每个元素都是指针类型。
- 数组指针是一个指针,它指向一个数组的首地址。
- 指针数组可以指向不同数据类型的指针,而数组指针只能指向特定数据类型的数组。
- 指针数组的元素可以单独赋值,而数组指针需要指向已有数组。