投入就放过 发表于 2022-2-20 11:05:31

c语言 函数指针

#include <stdio.h>

int add(int,int);
int sub(int,int);
int (*select(char op))(int,int);

int add(int num1,int num2)
{
        return num1+num2;
}

int sub(int num1,int num2)
{
        return num1-num2;
}

int (*select(char op))(int,int)
{
        switch(op)
        {
                case '+':return add;
                case '-':return sub;
        }
}

int main(void)
{
        int num1,num2;
        char op;
       
        printf("请输入一个式子(1+2):");
        scanf("%d%c%d",&num1,&op,&num2);
       
        printf("%d%c%d=%d\n",num1,op,num2,select(op));   //直接用函数指针返回add 或者sub函数,然后打印,但是结果有问题,这么使用问题出现在哪里呢?
       
        return 0;
}

ckblt 发表于 2022-2-20 11:07:45

printf("%d%c%d=%d\n", num1, op, num2, select(op)(num1, num2));
页: [1]
查看完整版本: c语言 函数指针