地址有负的么 另外每次分配地址不一样么

来源:百度知道 编辑:UC知道 时间:2024/06/03 20:45:22
main()
{int a[5],i;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++)
printf("%d\n",&a[i]);
}
随便输入5个整形变量 输出了5个地址 分别是-68 -66 -64 -62 -60 我想问一下 这个地址有负的么 另外每次分配地址不一样么

地址没有负值的,每次分配时,是将内存中连续长度满足数组存储size要求的buffer分配来使用,所以每次分配地址是不一定一样的,一般不一样

你的输出格式用错了
输出地址应该这么输出:
printf("%p\n",&a[i]);

地址没有负值,但偏移地址的话有负值这一说.每次分配的地址是随机的,不一定一样的.