C的指针函数

1,数组的函数

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{


    int a[10];


    typedef int(MyArrary)[10];

    MyArrary y;
    y[0] = 56;

    printf("y[0] %d\n", y[0]);



    //数组的指针

    typedef int(*PMyArrary)[10];

        PMyArrary s;

        s = &a;
        (*s)[0] = 67;

        printf("s[0] %d\n", a[0]);




        //函数指针数组

        {
            int(*CMyArray)[10];
            CMyArray = &a;

            (*CMyArray)[0] = 8979;   //这里 (*CMyArray)[0]    是的指向内存的地址

            printf("CMyArray【0】:%d\n", a[0]);
        }

    printf("\n");
    system("pause");
    return 0;
}

2,函数指针


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

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

int main(void)
{
    add(3, 4);


    //函数的

    typedef int (MyAdd)(int a, int b);
    MyAdd *myadd;
    myadd = &add;
    myadd(4, 5);


    //函数的指针的调用
    typedef int(*Myadd)(int a, int b);
    Myadd myadds;
    myadds = add;
    myadds(4, 5);





    //指针的函数的调用
    int(*Myli)(int a, int b);
    Myli = &add;

    Myli(5, 6);

    printf("\n");
    system("pause");
    return 0;
}

3,函数的指针回调


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int add(int a, int b)
{
    printf("add()\n");
    return a + b;
}
int add2(int a, int b)
{
    printf("add()\n");
    return a + b;
}
int add3(int a, int b)
{
    printf("add()\n");
    return a + b;
}
int add4(int a, int b)
{
    printf("add()\n");
    return a + b;
}


typedef int(*MyAdd)(int a, int b);


void Mychenli(MyAdd  myadd)
{
    myadd(4, 5);
}

int Mychenli2(int(*Myaddli)(int a, int b))
{
    return Myaddli(5, 5);
}

int main(void)
{
        //回调函数
    Mychenli2(add);
    Mychenli2(add2);
    Mychenli2(add3);
    Mychenli2(add4);
    printf("\n");
    system("pause");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值