C++指针数组和数组指针
时间: 2023-11-18 16:06:12 浏览: 100
C++中的指针数组和数组指针是两个不同的概念。
指针数组是一个数组,其中的每个元素都是一个指针。这些指针可以指向不同的数据类型,也可以指向同一类型的不同变量。例如:
```c++
int a = 1, b = 2, c = 3;
int* ptrArr[3] = {&a, &b, &c};
```
这里定义了一个包含3个元素的指针数组ptrArr,每个元素都是一个指向int类型变量的指针。可以通过下标访问数组中的元素,也可以通过指针操作符*访问指针指向的变量。
数组指针是一个指针,它指向一个数组。这个数组可以是一维或多维的,指针可以指向不同的数据类型。例如:
```c++
int arr[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int (*pArr)[4] = arr;
```
这里定义了一个3行4列的二维数组arr,然后定义了一个指向包含4个整数的一维数组的指针pArr,将arr的首地址赋值给pArr。可以通过指针操作符*访问指针指向的数组中的元素,也可以通过下标访问数组中的元素。
相关问题
用C++说明指针数组和数组指针的区别
指针数组和数组指针是 C++ 中两种不同的概念。
指针数组是指一个数组,其中的每个元素都是指针。换句话说,指针数组是一个数组,其中的元素都是指向其他数据类型的指针。例如:
```cpp
int* arr[5]; // 声明一个包含 5 个指向 int 类型的指针的数组
```
在这个例子中,`arr` 是一个指针数组,它包含 5 个指向 int 类型的指针。每个元素都可以指向一个 int 类型的变量或者是 null。
数组指针是指一个指针,它指向一个数组。换句话说,数组指针是一个指向数组的指针。例如:
```cpp
int (*ptr)[5]; // 声明一个指向包含 5 个 int 类型元素的数组的指针
```
在这个例子中,`ptr` 是一个数组指针,它指向一个包含 5 个 int 类型元素的数组。可以通过解引用 `ptr` 来访问该数组的元素。
简而言之,指针数组用于存储指针,而数组指针是指向数组的指针。
指针数组和数组指针的写法
指针数组和数组指针是两种不同的概念,它们的写法如下:
1. 指针数组的写法:
```C++
// 声明一个指针数组,包含 n 个指向 int 类型的指针
int* arr[n];
// 示例:创建一个包含 3 个 int 类型指针的指针数组
int* arr[3];
```
2. 数组指针的写法:
```C++
// 声明一个数组指针,指向含有 n 个 int 类型元素的数组
int (*ptr)[n];
// 示例:声明一个指向含有 5 个 int 类型元素的数组的指针
int (*ptr)[5];
```
需要注意的是,指针数组是一个包含指针元素的数组,每个元素都是一个指针;而数组指针是一个指向数组的指针,它指向一个具体的数组对象。因此,它们的类型和用法不同,需要根据具体的需求来选择使用哪种形式。
阅读全文