C语言中,数组指针、指针数组的区别
时间: 2024-06-14 19:04:41 浏览: 133
数组指针和指针数组是C语言中两个不同的概念。
数组指针是指向数组的指针,也称为行指针。它指向数组的首元素地址。数组指针的定义方式为`类型 (*指针名)[数组长度]`。例如,`int (*p)[10]`表示一个指向长度为10的int类型数组的指针。通过数组指针可以访问数组中的元素。
指针数组是指数组中的元素是指针类型的数组。它是由多个指针组成的数组。指针数组的定义方式为`类型 *指针数组名[数组长度]`。例如,`int *pa`表示一个包含5个int类型指针的数组。每个元素都是一个指向int类型变量的指针。
下面是一个示例代码来演示数组指针和指针数组的区别:
```c
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
int c = 30;
int arr[3] = {a, b, c};
int (*parr)[3] = &arr; // 数组指针,指向arr数组的首地址
int *p[3] = {&a, &b, &c}; // 指针数组,包含3个int类型的指针
printf("数组指针访问数组元素:\n");
for (int i = 0; i < 3; i++) {
printf("%d ", (*parr)[i]);
}
printf("\n指针数组访问指针指向的值:\n");
for (int i = 0; i < 3; i++) {
printf("%d ", *p[i]);
}
return 0;
}
```
输出结果为:
```
数组指针访问数组元素:
10 20 30
指针数组访问指针指向的值:
10 20 30
```
阅读全文