大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C技巧 > C语言函数指针的用法

C语言函数指针的用法(2)

关键词:指针用法函数语言  阅读(1249) 赞(11)

[摘要]本文是对C语言函数指针的用法的讲解,与大家分享。

#include<stdio.h>

double _add(double, double);
double _sub(double, double);
double _mul(double, double);
double _div(double, double);

double _add(double a, double b)
{
    return a + b;
}

double _sub(double a, double b)
{
    return a - b;
}

double _mul(double a, double b)
{
    return a * b;
}

double _div(double a, double b)
{
    return a / b;
}

int main(void)
{
    int n;
    enum Operation{ADD, SUB, MUL, DIV}op;
    double a, b, ans;
    a = 0.232332;
    b = 0.234398;
    printf("请输入一个整数(0-3): ");
    scanf("%d", &n);
    op = (enum Operation)n;
    switch(op) {
    case ADD:
        ans = _add(a, b);
        break;
    case SUB:
        ans = _sub(a, b);
        break;
    case MUL:
        ans = _mul(a, b);
        break;
    case DIV:
        ans = _div(a, b);
        break;
    default:
        break;
    }
    printf("%lf\n", ans);
    return 0;
}

使用可以使用转换表来实现相同的任务,转换表就是一个函数指针数组,代码如下:

#include<stdio.h>

double _add(double, double);
double _sub(double, double);
double _mul(double, double);
double _div(double, double);

double _add(double a, double b)
{
    return a + b;
}

double _sub(double a, double b)
{
    return a - b;
}

double _mul(double a, double b)
{
    return a * b;
}

double _div(double a, double b)
{
    return a / b;
}

int main(void)
{
    int n;
double a, b, ans; a = 0.232332; b = 0.234398; printf("请输入一个整数(0-3): "); scanf("%d", &n); double (*oper_func[])(double, double) = { _add, _sub, _mul, _div }; ans = oper_func[n](a, b); printf("%lf\n", ans); return 0; }
«上一页12下一页»


相关评论