#include<stdio.h>
int main()
{
char arr[] = "somestring";
char *ptr1 = arr;
char *ptr2 = ptr1 + 3;
printf("ptr2 - ptr1 = %ld\n", ptr2 - ptr1);
printf("(int*)ptr2 - (int*) ptr1 = %ld", (int*)ptr2 - (int*)ptr1);
return 0;
}
ptr2 - ptr1
给出3,但无法弄清楚,为什么第二个printf打印0
问下问题? –
为什么你投到(int *)? – Jerry
See:'(int *)ptr1 + 1 ** **(int *)ptr2' –