江红之乡

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

* 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.\n",*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\r\n", *ip);

printf(" vaar=%d\r\n", vaar);

*ip=30;

printf(" *ip=%d\r\n", *ip);

printf(" vaar=%d\r\n", vaar);

函数参数传递

 

posted on 2019-02-21 14:06  江红之乡  阅读(2786)  评论(0编辑  收藏  举报