【二级指针】--应用案例

#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <stdlib.h>//malloc
typedef   unsigned int      uint32_t  ;
typedef   unsigned short    uint16_t  ;
typedef   unsigned char     uint8_t  ;


char readChar(unsigned char** pptr)
{
  char c = **pptr;//参数可以理解:unsigned char (** pptr)
  (*pptr)++;
  return c;
}


int main(void)
{
  unsigned char arr0[3]={8,5};
  unsigned char *arrp=arr0;//数组变成指针了


  char a=readChar(&arrp);//调用函数 向下2层  函数往上2层
  printf("%d\n",a );//8
  printf("%d--%d---%d\n",*arrp,arrp[0],*(arrp+1) );//5-5-0  
  //因为集体往后移动了一位!

  return 1;
}

 

上面看到了 它的效果是自动+1

就好像你每次报文解析的时候 自己做i++

int MQTTDeserialize_subscribe(unsigned char* dup, unsigned short* packetid, int maxcount, int* count, MQTTString topicFilters[],    int requestedQoSs[], unsigned char* buf, int buflen)
{
    MQTTHeader header = {0};
    unsigned char* curdata = buf;
    unsigned char* enddata = NULL;

    header.byte = readChar(&curdata);
    if (header.bits.type != SUBSCRIBE)

     。。。。

这就是一个应用案例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值