2020-04-01 |

函数指针数组

函数指针数组可以替换用于选择操作的开关或if语句,如下程序所示:

#include <stdio.h>

int add(int num1, int num2);
int subtract(int num1, int num2);
int multiply(int num1, int num2);
int divide(int num1, int num2);

int main() 
{
    int x, y, choice, result;
    int (*op[4])(int, int);

    op[0] = add;
    op[1] = subtract;
    op[2] = multiply;
    op[3] = divide;
    printf("输入两个整数: ");
    scanf("%d%d", &x, &y);
    printf("输入0进行加法、1进行减法、2进行乘法或3进行除法:: ");
    scanf("%d", &choice);
    result = op[choice](x, y);
    printf("%d", result);
    
    return 0;
}

int add(int x, int y) {
    return(x + y);
}

int subtract(int x, int y) {
    return(x - y);
}

int multiply(int x, int y) {
    return(x * y);
}

int divide(int x, int y) {
    if (y != 0)
    return (x / y);
    else
    return 0;
}

语句 int (*op[4])(int, int);声明函数指针数组。每个数组元素必须具有相同的参数和返回类型。在这种情况下,分配给数组的函数有两个int参数并返回一个int。

语句result = op[choice](x, y); 根据用户的选择执行适当的函数。先前输入的整数是传递给函数的参数。

0

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论