指针数组以及指向指针
时间: 2024-08-16 15:07:46 浏览: 49
C++指针 数组 内存释放.docx
5星 · 资源好评率100%
指针数组是一种数据结构,它包含了一组指向其他内存地址的变量,每个元素都是一个指针,可以存储另一个变量的地址。换句话说,它是一个元素全部为指针类型的数组。例如,在C语言中,我们可能会声明一个指针数组,用于存储不同类型对象的地址:
```c
int* intPointerArray; // 定义一个可以存放5个整数指针的数组
char** charPointerArray; // 定义一个可以存放字符串首字符指针的数组
// 初始化指针数组
intPointerArray = &variable1;
intPointerArray = &variable2;
charPointerArray = (char**)malloc(5 * sizeof(char*)); // 分配空间给数组
charPointerArray = malloc(sizeof(char) * 5); // 存储字符串首地址
```
而“指向指针”则是指一个指针变量,它指向的是另一个指针。这种间接引用使得我们可以操作和管理这些内存地址。比如,你可以有一个函数接收一个指针作为参数,然后返回一个新的指向该指针的新位置:
```c
void swap(int** pointers, int index1, int index2) {
int temp = *pointers[index1];
*pointers[index1] = *pointers[index2];
*pointers[index2] = temp;
}
int main() {
int arr[] = {1, 2, 3};
int* ptrs = {arr, arr + 1, arr + 2};
swap(ptrs, 0, 1);
// 现在ptrs和ptrs交换了它们指向的值
}
```
阅读全文