快速搭建网站信息库,什么网站做玩具的外贸,浏览器的历史,拓者设计吧app下载指针数组和数组指针是 C 语言中比较常见的两种类型。它们虽然名字很相似#xff0c;但是含义、用法以及指向类型都不同#xff0c;需要分开理解。
指针数组
指针数组是一个数组#xff0c;其中每个元素都是一个指针。这些指针可以指向不同类型的数据#xff0c;也可以指向…指针数组和数组指针是 C 语言中比较常见的两种类型。它们虽然名字很相似但是含义、用法以及指向类型都不同需要分开理解。
指针数组
指针数组是一个数组其中每个元素都是一个指针。这些指针可以指向不同类型的数据也可以指向相同类型的数据。例如下面是一个包含 3 个指针的指针数组其中每个指针指向一个整数
int a 1, b 2, c 3;
int* ptr_array[3] {a, b, c};上面这个指针数组 ptr_array 包含 3 个元素每个元素都是一个指向整数的指针。这些指针分别指向变量 a、b 和 c 的地址。我们可以通过下标访问这些指针进而访问到相应的整数
printf(%d %d %d\n, *(ptr_array[0]), *(ptr_array[1]), *(ptr_array[2]));上面这行代码输出 1、2 和 3分别对应变量 a、b 和 c 的值。
需要注意的是指针数组中的每个元素都是一个指针因此当我们想要使用指针数组的元素时需要通过解引用运算符 * 来获取它所指向的值例如上面的 *(ptr_array[0])。
数组指针
数组指针是一个指针它指向一个数组。它也可以指向不同类型的数组例如整数数组、字符数组等。我们可以使用数组下标运算符 [] 来访问指针所指向的数组中的元素。例如下面是一个指向 3 个整数的数组的指针
int array[3] {1, 2, 3};
int (*ptr_array)[3] array;上述代码中ptr_array 是一个指向 3 个整数的数组的指针。我们可以通过下标访问数组中的元素
printf(%d %d %d\n, (*ptr_array)[0], (*ptr_array)[1], (*ptr_array)[2]);上述代码会输出 1、2 和 3分别对应数组中的元素。
需要注意的是由于数组指针指向的是一个数组因此当我们想要使用数组指针所指向的数组时需要使用括号将指针和下标括起来例如上面的 (*ptr_array)[0]。
下面是一个完整的示例代码演示了指针数组和数组指针的使用
#include stdio.hint main() {// 指针数组int a 1, b 2, c 3;int* ptr_array[3] {a, b, c};printf(%d %d %d\n, *(ptr_array[0]), *(ptr_array[1]), *(ptr_array[2]));// 数组指针int array[3] {1, 2, 3};int (*ptr_array2)[3] array;printf(%d %d %d\n, (*ptr_array2)[0], (*ptr_array2)[1], (*ptr_array2)[2]);return 0;
}