在 C 语言 中,如果一个 数组 中的所有元素都是 指针,那么我们就可以说这个数组是一个指针数组,要注意与 数组指针 的区别。
dataType *arrayName[length];
参数 | 描述 |
---|---|
dataType | 指针数组中每一个元素的类型。 |
arrayName | 指针数组变量名。 |
我们定义了一个指针数组,该指针数组中的每一个元素都是一个 dataType 类型的地址,长度为 length。
定义一个指针数组,存放指针元素
#include <stdio.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
int a = 1024, b = 1100, c = 9898;
int *pArr[3] = {&a, &b, &c};
int i = 0;
for(i = 0; i < 3; i++)
{
printf("item = %d\n", *pArr[i]);
}
printf("\n");
return 0;
}
程序运行后,控制台输出如下图所示:
我们首先,定义了三个 int 类型 的变量,接着,我们定义了一个指针数组,该指针数组存放了三个 int 类型变量的地址。
最后,我们使用 for 循环 遍历了指针数组中的所有的元素,因为,指针数组里面存放的是变量的地址,所以取出元素之后,我们还需要使用 *
取出其指向的元素的值。
定义一个指针数组,存放字符串元素
#include <stdio.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
char *str0 = "HaiCoder";
char *str1 = "www.haicoder.net";
char *str2 = "C Language";
char *pArr[3] = {str0, str1, str2};
int i = 0;
for(i = 0; i < 3; i++)
{
printf("str = %s\n", pArr[i]);
}
printf("\n");
return 0;
}
程序运行后,控制台输出如下图所示:
我们首先,定义了三个 字符串,接着,我们定义了一个字符串指针数组,并使用了三个字符串进行了初始化,最后,我们使用 for 循环打印了指针数组中的所有元素。
在 C 语言中,如果一个数组中的所有元素都是指针,那么我们就可以说这个数组是一个指针数组。