C语言输出 编译器为变量分配的内存地址 %p

时间:2021-02-26 02:10:31


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);

}


程序的输出更有意思,输出如下


C语言输出 编译器为变量分配的内存地址 %p


我的电脑上32位的,所以HEX形式表示的0022ff24,表示32位地址。

三个变量的地址相差4个字节。b比a低4,c比b低4。