函数指针与指针函数的用法举例
时间: 2024-04-28 13:22:37 浏览: 64
函数指针和指针函数是两个不同的概念。
1. 函数指针(Function Pointer)是指向函数的指针变量。通过函数指针,可以在程序运行时动态地调用不同的函数。下面是一个函数指针的用法示例:
```c
#include <stdio.h>
void hello() {
printf("Hello, World!\n");
}
void goodbye() {
printf("Goodbye, World!\n");
}
int main() {
void (*func)();
int choice;
printf("Enter your choice (1 for 'hello', 2 for 'goodbye'): ");
scanf("%d", &choice);
if (choice == 1) {
func = hello;
} else {
func = goodbye;
}
func(); // 调用选择的函数
return 0;
}
```
在上面的示例中,根据用户的选择,通过函数指针 `func` 动态地调用不同的函数。
2. 指针函数(Pointer to a Function)是一个返回指针的函数。下面是一个指针函数的用法示例:
```c
#include <stdio.h>
int* createArray(int size) {
int* arr = (int*) malloc(size * sizeof(int));
return arr;
}
int main() {
int* arr;
int size;
printf("Enter the size of the array: ");
scanf("%d", &size);
arr = createArray(size);
// 使用数组
free(arr); // 释放内存
return 0;
}
```
在上面的示例中,`createArray` 是一个指针函数,它返回一个指向动态分配的整数数组的指针。在主函数中,我们可以使用这个返回的指针来操作数组。
总结:函数指针用于动态调用不同的函数,而指针函数则是返回指针的函数。它们在不同的场景中有各自的用途。
阅读全文