C语言指针加1后的值与指针类型有关。调试如下代码加深理解
#include <string.h>
#include <stdio.h>
#include <unistd.h>
int main ()
{
char str[10];
char *p1 = str;
int num[10];
int *p2 = num;
printf("0x%x \n", p1);
printf("0x%x \n", p1+1); //p1+1地址偏移了一个sizeof(char)
printf("0x%x \n", p2);
printf("0x%x \n", p2 + 1); //p2+1地址偏移了一个sizeof(int)
return 0;
}
运行结果如下
0x57234a2
0x57234a3
0x5723470
0x5723474