函数指针、指针函数 举例
时间: 2023-08-03 21:00:52 浏览: 113
函数指针的范例
函数指针和指针函数是C语言中的两个重要概念。
1. 函数指针:
函数指针是指向函数的指针变量,可以用来调用相应的函数。函数指针的声明方式为:返回类型 (*指针变量名)(参数列表)。
举例:
```c
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*funcPtr)(int, int); // 声明一个函数指针变量
funcPtr = add; // 函数指针指向add函数
printf("Result: %d\n", funcPtr(5, 3)); // 调用add函数
funcPtr = subtract; // 函数指针指向subtract函数
printf("Result: %d\n", funcPtr(5, 3)); // 调用subtract函数
return 0;
}
```
上述示例中,声明了一个函数指针变量`funcPtr`,然后将其分别指向`add`和`subtract`两个函数,并通过函数指针调用相应的函数。
2. 指针函数:
指针函数是一个返回指针的函数,即函数的返回值类型为指针类型。
举例:
```c
#include <stdio.h>
int* createArray(int size) {
int *arr = (int*) malloc(size * sizeof(int)); // 动态分配内存
return arr;
}
int main() {
int *ptr;
ptr = createArray(5); // 调用指针函数创建数组
if (ptr != NULL) {
for (int i = 0; i < 5; i++) {
ptr[i] = i + 1;
printf("%d ", ptr[i]);
}
free(ptr); // 释放内存
}
return 0;
}
```
上述示例中,`createArray`是一个指针函数,它用于动态创建一个整型数组,并返回数组的指针。在`main`函数中,通过调用`createArray`函数创建了一个大小为5的整型数组,并使用返回的指针进行操作。最后需要记得使用`free`函数释放内存。
阅读全文