函数指针的数组的辨析{直接上案例}

#include <stdio.h>

int Add(int x,int y)
{
    return x + y;
}
int Sub(int x,int y)
{
    return x - y;
}
int Mul(int x,int y)
{
    return x * y;
}
int Div(int x,int y)
{
    return x / y;
}

//
int main()
{
    //函数指针——指向单个函数
    int (*pa)(int x,int y) = Add;//Add可以替换为 Add || Sub || Mul || Div
    printf("%d\n",pa(2,3)); //输出 5
    //函数指针数组——指向多个函数
    int (*parr[4])(int x,int y) = {Add, Sub,Mul, Div};
    int i = 0;
    for (i = 0;i < 4;i++)//输出 5 -1 6 0
    {
        printf("%d ",parr[i](2,3));
    }
    //识别下列数组是否正确
    int (*parr1[10])(); //正确
    //int *parr2[10]();//错误,语法错误,[10]先于()结合,不符合语法定义
    //int (*)()parr3[10];//错误,同样是语法错误,应将 写为 int(*parr3[10])();


    //char* my_strcpy(char* dest,const char* src);
    //1.写出一个函数指针 pf,能够指向my_strcpy
    char*(*pf(char*,const char*));
    //2.写出一个函数指针数组pfArr,能够存放4个my_strlen函数地址
    char* (*pfArr[4])(char*,const char*);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值