📜  C |高级指针|问题9(1)

📅  最后修改于: 2023-12-03 14:59:38.990000             🧑  作者: Mango

C语言高级指针问题9

在C语言中,指针是一个非常强大的工具,可以操作内存中的数据,因此是编写高效代码的关键。在指针的基础上,还存在一些更加高级的指针概念,这些概念在某些情况下可以提高代码的效率和可读性。本文将介绍C语言高级指针问题9。

问题描述

在指针中,有一种指针称为“函数指针”。函数指针指向的是函数,可以像指针一样传递给其他函数,也可以用来调用函数。

本问题中,请使用函数指针实现一个简单的计算器程序,可以实现加减乘除四则运算。程序需要从命令行输入两个数字和一个运算符,然后输出计算结果。

代码实现
#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int sub(int a, int b) {
    return a - b;
}

int mul(int a, int b) {
    return a * b;
}

int div(int a, int b) {
    return a / b;
}

int main() {
    int a, b;
    char op;
    int (*func)(int, int);

    printf("Please enter two numbers and an operator:\n");
    scanf("%d %d %c", &a, &b, &op);

    switch (op) {
        case '+':
            func = add;
            break;
        case '-':
            func = sub;
            break;
        case '*':
            func = mul;
            break;
        case '/':
            func = div;
            break;
        default:
            printf("Invalid operator\n");
            return 1;
    }

    int result = func(a, b);
    printf("Result: %d\n", result);

    return 0;
}
代码解析

在main函数中,我们首先定义了两个变量a和b,分别表示输入的两个数字;定义了一个字符变量op,表示输入的运算符。然后定义了一个函数指针变量func,用来指向四个不同的函数。

接着,我们使用scanf函数从命令行中读取输入的数字和运算符,并根据运算符的不同将函数指针func指向对应的函数。

最后,我们使用函数指针调用相应的函数,得到计算结果,并输出到命令行中。

总结

本文介绍了C语言高级指针问题9,通过使用函数指针实现了一个简单的计算器程序。函数指针是一种非常强大的指针类型,可以用来实现很多高级的功能。在实际编程中,需要灵活运用函数指针来提高代码的效率和可读性。