什么是指针函数和函数指针,结构体函数指针
时间: 2024-01-11 13:22:06 浏览: 97
函数指针-自动驾驶汽车框架文件
指针函数和函数指针是C语言中的两个概念,它们分别表示不同的含义。
指针函数是指返回值为指针类型的函数。在C语言中,函数可以返回各种类型的值,包括指针类型。指针函数可以通过返回指针来实现对函数外部变量的修改或者返回动态分配的内存地址。下面是一个指针函数的示例:
```c
int* getPointer() {
int* p = malloc(sizeof(int));
*p = 10;
return p;}
```
上述示例中,`getPointer`函数返回一个指向动态分配内存的指针,该指针指向一个整型变量。
函数指针是指指向函数的指针变量。在C语言中,函数也是一种数据类型,可以像其他变量一样被声明和使用。函数指针可以用来存储函数的地址,以便在需要时调用该函数。下面是一个函数指针的示例:
```c
int add(int a, int b) {
return a + b;
}
int main() {
int (*funcPtr)(int, int);
funcPtr = add;
int result = funcPtr(2, 3); // 调用add函数
printf("Result: %d\n", result);
return 0;
}
```
上述示例中,`funcPtr`是一个函数指针变量,它指向`add`函数。通过函数指针可以调用`add`函数并得到结果。
结构体函数指针是指指向结构体成员函数的指针变量。在C语言中,结构体可以包含成员函数,通过结构体函数指针可以调用结构体的成员函数。下面是一个结构体函数指针的示例:
```c
#include <stdio.h>
struct Person {
char name[20];
void (*sayHello)();
};
void sayHello() {
printf("Hello, I'm a person.\n");
}
int main() {
struct Person p;
p.sayHello = sayHello;
p.sayHello(); // 调用结构体成员函数
return 0;
}
```
上述示例中,`Person`结构体包含一个成员函数指针`sayHello`,通过结构体变量`p`可以调用该成员函数。
阅读全文