对于C语言指针+1的理解

自己的一点理解:

C里边的指针p,当我们对其作 +1 操作时(p=p+1),本质上都是“p当前的地址 + p所属类型大小的偏移量地址”,并非真实内存中实际地址加1。

typedef struct {
char name[40];
char age;
}STU;

STU stus[] = {
{"aa", 1},
{"bb", 2},
{"cc", 3},
{"dd", 4},
{"ee", 5},
{"ff", 6}
};

STU *p = stus;
for( int i=0; i<6; i++ )
{
printf("%d [%s %d]\n", i, p->name, p->age);
//p = p + sizeof(STU);    错,不需要自己额外计算真实偏移量

p  = p + 1;                   对
}

 

posted @ 2017-02-23 21:45  春哥的笔记  阅读(1353)  评论(0)    收藏  举报