我有以下代码:
main()
{
int pt = {0}, *ppt = &pt;
char *p1 = NULL, *p2 = NULL;
p1 = (char*)(ppt);
p2 = (char*)(ppt+1);
printf("%p\n",p1);
printf("%p\n",p2);
printf("%d",(p2-p1));
}
这给了我预期变量的大小。但我不是 了解这是如何工作的。 p1和p2为char。为什么?如果我 将其更改为short或int,我得到的结果为1,虽然是地址 有相同的区别。