C语言技术进阶之 指针相减的含义
int main()
{
int iA[4];
short *p1 = &iA[0];
short *p2 = &iA[1];
printf("Pointer Diff = %lu\n",p2-p1);
return 0;
}
上述程序运行结果:Pointer Diff = 2 (代表两个USHORT类型)
不是 4
因为指针相减含义是多少个该类型的单位。不是纯字节数。
C语言技术进阶之 指针相减的含义
int main()
{
int iA[4];
short *p1 = &iA[0];
short *p2 = &iA[1];
printf("Pointer Diff = %lu\n",p2-p1);
return 0;
}
上述程序运行结果:Pointer Diff = 2 (代表两个USHORT类型)
不是 4
因为指针相减含义是多少个该类型的单位。不是纯字节数。