在不使用sizeof()的情况下查找变量的大小

时间:2014-09-28 15:29:09

标签: c memory sizeof

我有以下代码:

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,虽然是地址 有相同的区别。

0 个答案:

没有答案