C一级指针形参和二级指针形参,如何使用?分别举例说明
时间: 2024-10-01 09:11:51 浏览: 22
在C语言中,一级指针和二级指针都是用于处理内存地址的变量,它们的主要区别在于指向的数据类型和灵活性。
**一级指针形参:**
一级指针形参是指函数接受一个指向基本数据类型的指针作为参数。例如:
```c
void printAddress(int *ptr) {
printf("The address of the integer is: %p\n", ptr);
}
int main() {
int num = 10;
printAddress(&num); // 传递num的地址给printAddress函数
return 0;
}
```
在这个例子中,`printAddress`函数接收一个整型指针,并打印出该指针所指向的内存地址。当我们传入`&num`时,实际上是传递了`num`的存储位置。
**二级指针形参:**
二级指针,也称为指针的指针,它是一个指向指针的变量。这通常用于动态分配内存、操作数组等场景。比如:
```c
void resizeArray(int **array, int newSize) {
*array = (int*)realloc(*array, newSize * sizeof(int)); // 指针级别的动态分配
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *pointerToArr = &arr; // 创建指向数组起始地址的一级指针
resizeArray(&pointerToArr, 10); // 通过二级指针修改数组大小
return 0;
}
```
这里,`resizeArray`函数接受一个指向整型指针的指针,可以动态调整原始数组的大小。
阅读全文