在字节级别解释整数和无符号长整数

时间:2019-02-21 00:59:43

标签: c

给出以下示例代码:

#include <stdio.h>

int main()
{
    int a = 10, c, d, e;
    int *p = &a;

    c = p + 1 - p;
    d = (unsigned long)(p+1) - (unsigned long)p;
    e = (p+1) - p;

    printf("\n%d, %d, %d\n", c, d, e);
}

然后,此输出1, 4, 1

为什么我们看到算术结果不同?这是由于字节级别的解释差异引起的还是其他原因?

0 个答案:

没有答案