小结:指针数组,数组指针,函数指针,函数指针的数组,指向函数指针数组的指针

#include <stdio.h>
int Add(int x,int y)
{
    return x + y;
}
int Eor(int x, int y)
{
    int ret = x ^ y;
    return ret;
}
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;
}
//关键是看这个arr与谁先结合,谁就是类型
int main()
{
    //指针数组
    int* arr[10];
    //数组指针
    int*(*pa)[10];
        //指针数组赋值给数组指针
        pa = &arr;
            //或者将上边语句改为int*(*pa)[10] = &arr;
    //函数指针
    int (*pArr)(int,int);
        //将Add函数赋值给pArr
        pArr = Add;
            //赋值
            printf("%d",pArr(2,3));//输出为5
    //函数指针的数组
    int (*pArt[5])(int,int);
        //赋值
        pArt[0] = Add;
        pArt[1] = Sub;
        pArt[2] = Mul;
        pArt[3] = Div;
        pArt[4] = Eor;
        //另一种赋值方式是 错误的!!!
            //int (*pArt[5])(int,int)={Add, Sub,Mul,Div,Eor};
    //指向函数指针数组的指针
    int(*(*ppArt)[5])(int,int);
        //将pArt赋值给ppAet
        ppArt = &pArt;
            //赋值
            printf("Add: %d\n", pArt[0](10, 5)); //输出:15
            printf("Sub: %d\n", pArt[1](10, 5)); //输出:5
            printf("Mul: %d\n", pArt[2](10, 5)); //输出:50
            printf("Div: %d\n", pArt[3](10, 5)); //输出:2
            printf("Eor: %d\n", pArt[4](10, 5)); //输出:15

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值