* 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 { scanf("%d",p); //将输入的地址保存在p所指向的数据元素 ++p; } //让p重新指向第一个元素 p=scores; FUNC pfunc=NULL; //用函数指针(FUNC f)传递函数 for(int i=0;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); 函数参数传递 数组比较