C语言指针数组 指针函数概念和应用举例
时间: 2025-02-10 13:16:08 浏览: 38
在C语言中,指针数组是一组指向同种数据类型的变量的地址集合。你可以像处理普通数组一样操作它,但是元素是通过它们的地址间接访问的。例如:
```c
int numbers[] = {10, 20, 30};
int (*ptrArray)[3] = &numbers; // 创建一个指针数组,每个元素可以指向3个整数
// 访问数组元素
(*ptrArray)[0] = 50; // 相当于 numbers[0] = 50;
```
指针函数是指其形参列表中的某个参数是一个函数指针。这种设计允许你将通用的操作传递给不同的函数实现。比如,排序算法可以用这个机制接收比较函数作为参数:
```c
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void quickSort(int arr[], int left, int right, int compareFn(int *, int *)) {
// 使用compareFn指针函数作为排序依据
if (left < right) {
int pivotIndex = partition(arr, left, right, compareFn);
quickSort(arr, left, pivotIndex - 1, compareFn);
quickSort(arr, pivotIndex + 1, right, compareFn);
}
}
void myCompareFn(int *a, int *b) {
return *a > *b ? 1 : *a < *b ? -1 : 0;
}
int main() {
int numbers[] = {3, 1, 4, 1, 5, 9};
quickSort(numbers, 0, sizeof(numbers) / sizeof(numbers[0]) - 1, myCompareFn);
}
```
阅读全文
相关推荐



















