C程序设计 (第四版) 谭浩强 例 8.22
例 8.22 用函数求整数a和b中的大者。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法:使用指针、函数指针、动态分配内存
#include <stdio.h>
#include <stdlib.h>void initialNum(int **a, int **b){*a = (int*)malloc(sizeof(int));*b = (int*)malloc(sizeof(int));
}void inputNum(int *a, int *b){printf("Enter number a, b: ");scanf("%d %d", a, b);
}void max(int *a, int *b){int max = *a > *b ? *a : *b;printf("Max = %d\n", max);
}void min(int *a, int *b){int min = *a < *b ? *a : *b;printf("Min = %d\n", min);
}void func(int *a, int *b, void (*fun)(int*, int*)){(*fun)(a, b);
}void freeNum(int **a, int **b){free(*a);free(*b);
}int main(){int *a = NULL;int *b = NULL;initialNum(&a, &b);inputNum(a, b);func(a, b, max);func(a, b, min);freeNum(&a, &b);system("pause");return 0;
}