对于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; 对
}

浙公网安备 33010602011771号