C语言是如何分配地址的呢?
用下列例子进行探究。
#include <stdio.h> #include <stdlib.h> int main() { long a=1L; long b=2L; long c=3L; printf("long存储的字节数%u bytes.",sizeof(long)); printf("\n long变量地址是:"); printf("\n a的地址是:%p b的地址:%p",&a,&b); printf("\n c的地址是:%p",&c); }
程序的输出更有意思,输出如下
我的电脑上32位的,所以HEX形式表示的0022ff24,表示32位地址。
三个变量的地址相差4个字节。b比a低4,c比b低4。