• C语言 函数指针 函数指针数组的用法


    * pointer1              //该指针指向从该地址开始一个1字节的内容

    short int* pointer2;        //该指针指向从该地址开始一个2字节的内容

    long int* pointer3;         //该指针指向从该地址开始一个4字节的内容

    long long int* ponter4;     //该指针指向从该地址开始一个8字节的内容

    pointer1++ 使其对应内存地址移动一个字节

    pointer2++ 使其对应内存地址移动两个字节

    pointer3++ 使其对应内存地址移动三个字节

    pointer4++ 使其对应内存地址移动四个字节

    typedef void(*FUNC)(void);  //定义函数指针类型FUNC

    //打印函数

    void printpass()

    {

    puts("congratunation!");

     }

     void printfail()

     {

      puts("sorry!");

     }

    void doprint(int *score,FUNC f)   //执行打印任务

    {

    printf("your score is %d. ",*score);  //通过数据指针访问它所指向的数据

    if(NULL!=f)

    f();

    }

    int main()

    {

    const int count = 30;

    int scores[count];

    puts("please input the scores.");

    int *p=scores;

    for(int i=0;i<count;++i)

    {

    scanf("%d",p);   //将输入的地址保存在p所指向的数据元素

    ++p;

    }

    //p重新指向第一个元素

    p=scores;

    FUNC pfunc=NULL; //用函数指针(FUNC f)传递函数

    for(int i=0;i<count;++i)

    {

    if((*p)>=60)

    pfunc=printpass;

    else

    punc=printfail;

    doprint(p,pfunc);

    ++p;

     }

    return 0;

    }

    typedef struct

    {

      void **pMem;        //指向队列缓存

    uint8_t memSize;    //队列大小

    uint8_t readIndex;  //读队列索引

    uint8_t writeIndex; //写队列索引

    }Queuemsg_stu_t;

       

    数组比较

    u8 gui[5]={1,2,3,4,5},zhou[5]={1,2,3,4,5};  

    if (memcmp(&gui, &zhou, sizeof(zhou)) == 0)// (memcmp(gui, zhou, sizeof(zhou))

    {

    }

    只要gui[]zhou[]内容一样,比对取地址和值都是可以比对成功

    Task_stu_t *pTask_stu_t;

    pTask_stu_t  =  (Task_stu_t *)EEEPROM_BASE_ADDR;

    &(pTask_stu_t->timeStamp));  地址

    (pTask_stu_t->timeStamp));  

    int *ip;

    int vaar=20;

    ip=&vaar;

        printf(" *ip=%d ", *ip);

    printf(" vaar=%d ", vaar);

    *ip=30;

    printf(" *ip=%d ", *ip);

    printf(" vaar=%d ", vaar);

    函数参数传递

  • 相关阅读:
    (三)xpath爬取4K高清美女壁纸
    聚焦爬虫:数据解析
    (二)requests-爬取国家药监局生产许可证数据
    (一)requests-实战小练习
    requests模块
    spring+apache dbcp +oracle 连接池配置以及优化
    IntelliJ IDEA 注释模版 输入/**后 不显示配置好的模板
    oracle 隔离级别、事务怎么开始的以及如何查看数据库采用字符集
    java 日期处理相关
    Oracle 插入数据时获取系统时间
  • 原文地址:https://www.cnblogs.com/wangzhihong-102511/p/10412125.html
Copyright © 2020-2023  润新知