特别特殊的点
#include<stdio.h>
int main(void)
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
printf("%p\n", &arr[3]);//0x0135f9cc
int* p = &arr[3];
printf("%p\n", p+1);//0x0135f9d0
printf("%d\n", *(p + 1));//5
printf("%p\n", &arr[4]);//0x0135f9d0
printf("%p\n", &arr[9]);//0x0135f9e4
printf("%d\n", &arr[9] - &arr[4]);//5
return 0;
}
根据上述代码:
无论是指针变量加1减1,相差都是4个字节
还是不同的变量的指针,相差的都是4的倍数
只有两个指针变量相减的时候,显示的是相差的个数
注意:只能是相同类型的指针变量进行相减