数组指针和指针数组详细区别举例
时间: 2023-11-12 20:00:56 浏览: 107
数组指针和指针数组是两种不同的概念。
数组指针是一个指向数组的指针,它本身是一个指针变量,指向的是数组的首地址。用来表示数组最直接的方式就是用数组名,但是用数组指针也可以达到同样的效果。例如:
```
int arr[3] = {1, 2, 3};
int (*pArr)[3] = &arr; // 数组指针
```
指针数组则是一个数组,其中每个元素都是一个指针。用来表示多个指针的方式就是用指针数组。例如:
```
int a = 1, b = 2, c = 3;
int *pArr[3] = {&a, &b, &c}; // 指针数组
```
可以看到,数组指针和指针数组的区别在于它们所指向的对象不同。数组指针指向一个数组,而指针数组是一个数组,其中每个元素都是指针。
举个例子,假设我们有一个二维数组,我们可以用数组指针和指针数组来表示它:
```
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
// 用数组指针表示
int (*pArr)[3] = arr;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", *(*(pArr + i) + j));
}
printf("\n");
}
// 用指针数组表示
int *pArr[2];
for (int i = 0; i < 2; i++) {
pArr[i] = arr[i];
for (int j = 0; j < 3; j++) {
printf("%d ", *(pArr[i] + j));
}
printf("\n");
}
```
可以看到,用数组指针表示时需要用两个指针来访问数组元素,而用指针数组表示时只需要一个指针即可访问数组元素。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)