int maxValue(int x, int y);
int minValue(int x, int y);
int sumValue(int x, int y);
int maxValue(int x, int y) {
return x > y ? x : y;
}
int minValue(int x, int y) {
return x < y ? x : y;
}
//函数类型: int (int x, int y)
int sumValue(int x, int y) {
return x + y;
}
//如果没有参数, 定义时括号必不可少
void printHello() {
printf("Hello");
}
int main(int argc, const char * argv[])
{
//函数指针: 指向函数的指针变量
//函数使用的三个部分
//1 函数的声明(没有函数体)
//2 函数的实现(函数返回值, 函数名, 形参列表, 函数体)
//3 函数的调用(函数名(实参列表))
int max = maxValue(10, 5);
int min = minValue(10, 5);
int sum = sumValue(10, 5);
printf("max = %d min = %d sum = %d\n", max, min, sum);
//函数的声明: int minValue(int x, int y);
//函数指针定义
//定义一个函数指针指向minValue函数
//p函数指针变量名 NULL是函数指针变量的初值 int(*)(int x, int y)是函数指针类型
//定义了一个函数指针名字为p, 指向了一个返回值为int类型, 并且有两个整型参数的函数
int (*p)(int x, int y) = NULL;
//指针变量赋值, 函数地址
//函数名代表函数的首地址
p = minValue;//p指向minValue函数
//当把函数的地址赋给指针变量p之后, p就可以当做函数名使用
int min2 = p(10, 5);
int (*p2)(int x, int y) = NULL;
int (*p3)(int x, int y) = NULL;
p2 = maxValue;
p3 = sumValue;
int max2 = p2(10, 5);
int sum2 = p3(10, 5);
printf("max2 = %d min2 = %d sum2 = %d\n", max2, min2, sum2);
void (*p4)() = NULL;
p4 = printHello;
p4();
函数指针
最新推荐文章于 2024-03-12 12:54:34 发布