指针函数与函数指针示例

来源:互联网 发布:vb九九乘法表右上三角 编辑:程序博客网 时间:2024/05/23 14:03
#include <stdio.h>#include <stdlib.h>   //malloc()#include <memory.h>   //memset()//指针函数,返回值是指针类型 (返回一个地址给调用者)int *pointF(int param1, int param2);   //声明指针函数//函数指针:函数指针就是一个指针,指向一个函数(函数名的地址)int (*functionP)(int, int);  //声明函数指针,指向返回值类型为int,有两个参数类型都是int的函数int maxValue(int param1, int param2);//声明求最大值的函数int minValue(int param1, int param2);//声明求最小值的函数int main(void){    //指针函数示例    int *pSum = NULL;    pSum = pointF(5, 8);    printf("pSum of memeory address = %p\t *pSum = %d \n", pSum, *pSum);    //函数指针示例    functionP = maxValue;    int mMax = 0;    mMax = (*functionP)(52, 36);    printf("mMax = %d\n", mMax);    functionP = minValue;    int mMin = 0;    mMin = (*functionP)(52, 36);    printf("mMin = %d\n", mMin);    return 0;}//指针函数的定义, 返回值 是指针类型  int *int *pointF(int param1, int param2){    int *pF = (int *)malloc(sizeof(int));    printf("pF of memeory address = %p\n", pF);    memset(pF, 0, sizeof(int));    *pF = param1 + param2;    printf("*pF of value = %d\n", *pF);    return pF;}//求最大值 返回值是int类型int maxValue(int param1, int param2){    return param1 > param2 ? param1 : param2;}//求最小值 返回值是int类型int minValue(int param1, int param2){    return param1 < param2 ? param1 : param2;}

0 0