long int高位和低位指针

时间:2016-12-05 19:03:19

标签: c pointers long-integer allocation

我正在尝试在C中实现改进的顺序乘法算法,其中产品寄存器的大小是被乘数和乘数的两倍。在C中,int是4个字节,long int是8个字节。我想独立访问更高和更低的32位。所以我指出了低位和高位,如:

long long int product = 0;
int* high = &product;
int* low = &product;
low++;

但这没有用,因为我认为如果一个int被分配4个字节,那么一个long int将分配8个字节,指针将指向分配的内存的MSB。我不确定这是否实际上是如何完成分配的。任何人都可以帮我清除这种混乱。

我通过这样做解决了问题:

long long int product=0;
int* low = &product;
int* high = &product;
high++;

但我仍然感到困惑,为什么它正常工作;

1 个答案:

答案 0 :(得分:2)

您可能正在使用Little-Endian的计算机。在小端机器上,最低有效字节是第一个。