数组指针和指针数组辨析
时间: 2023-12-06 10:36:33 浏览: 101
数组指针和指针数组是两个不同的概念。数组指针是指向数组的指针,而指针数组是一个数组,其中每个元素都是指针。下面是它们的详细解释和区别:
1. 数组指针
数组指针是指向数组的指针。它是一个指针,指向数组的第一个元素。可以通过对指针进行算术运算来访问数组中的其他元素。例如,如果p是一个指向数组a的指针,则p + 1指向a的下一个元素。
下面是一个数组指针的例子:
```c
int a[5] = {1, 2, 3, 4, 5};
int *p = a; // p指向a的第一个元素
printf("%d\n", *(p+2)); // 输出:3
```
2. 指针数组
指针数组是一个数组,其中每个元素都是指针。它是一个保存指针的数组,每个指针都指向不同的内存地址。可以通过数组下标来访问每个指针。
下面是一个指针数组的例子:
```c
int a = 1, b = 2, c = 3;
int *p[3] = {&a, &b, &c}; // p是一个指针数组,其中每个元素都是int类型的指针
printf("%d\n", *p[1]); // 输出:2
```
区别:
- 数组指针是指向数组的指针,而指针数组是一个数组,其中每个元素都是指针。
- 数组指针可以通过指针算术运算来访问数组中的其他元素,而指针数组只能通过数组下标来访问每个指针。
阅读全文