前边已经讲过数组指针,强调的是指针,意思就是该指针指向的是数组(数组里边的元素一般为普通数据)。
指针数组,强调的是数组,意思就是该数组里边的每个元素都是指针类型。即如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组。
形式如下:
dataType *arrayName[length];
//[ ]的优先级高于*,该定义形式应该理解为:
dataType *(arrayName[length]);//先强调数组,再说数组的元素是指针
括号里面说明arrayName
是一个数组,包含了length
个元素,括号外面说明每个元素的类型为dataType *
。
除了每个元素的数据类型不同,指针数组和普通数组在其他方面都是一样的,下面是一个简单的例子:
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
int main() {
int a = 13, b = 32, c = 0;
int *arr[3] = { &a, &b, &c };// //定义一个指针数组 //也可以不指定长度,直接写作int *arr[]
int **parr = arr