【发布时间】:2019-02-17 13:41:16
【问题描述】:
int vector[] = { 28, 41, 7 };
int *p0 = vector;
int *p1 = vector + 1;
int *p2 = vector + 2;
我知道结果
printf("%p, %p, %p\n", p0, p1, p2);
是前)100, 104, 108
但是为什么是结果
printf("p2-p0: %d\n", p2 - p0);
printf("p2-p1: %d\n", p2 - p1);
printf("p0-p1: %d\n", p0 - p1);
是2, 1, -1
不是8, 4, -4????????
【问题讨论】:
-
你知道指针差分结果的数据类型是什么吗?如果你这样做了,你不应该在 printf 中使用 %d...