我们先看一段代码
int main() {
int a = 0;
char b = 'c';
int *p;
char *m;
p = &a;
m = &b;
printf("打印初始p的地址大小====%d\n", p);
printf("打印初始m的地址大小====%d\n", m);
p++;
m++;
printf("打印出p的地址大小====%d\n",p);
printf("打印出m的地址大小====%d\n", m);
return 0;
}
代码中定义了两个指针 一个是int型指针p 一个是char型指针m 他们分别指向变量a与b 。然后再将p与m的地址自增
我们看下代码运行结果
发现p由2948364变为2948368 增加了4
m增加了1
由此得出了结论:指针自增的方法 不是普通的加一 是新开辟一个内存空间 根据指针类型 如果是char类型则地址加1(char为一个字节) 如果是int 型 地址加4(32位的系统是4)