catch 发表于 2014-6-30 10:36:22

关于数组的一些问题:

#include <stdio.h>
#include <stdlib.h>

int *num;
int main()
{
    int i;
    for(i=0;i<20;++i)
    {
      printf("%x \n",num);
      printf("%x \n",&num);

    }
    return 0;
}


①.为什么上面打印出来的地址都连续呢?


②.打印出来的不是物理地址吧?


③.上面的空间分配在栈上面进行?


oggplay 发表于 2014-6-30 10:54:15

本帖最后由 oggplay 于 2014-6-30 11:30 编辑

1、指针数组同普通数组都是一样的,地址当然是连续的。
2、以上地址都是连续的逻辑地址,物理地址不一定连续;物理地址你是看不到的,由CPU和操作系统决定物理地址。
3、提到栈,多说一句,栈是存放函数参数(或者临时变量、局部变量)的,不是存放指令和全局变量的。

catch 发表于 2014-6-30 11:20:23

oggplay 发表于 2014-6-30 10:54 static/image/common/back.gif
1、指针数组同普通数组都是一样的,地址当然是连续的。
2、以上地址都是连续的逻辑地址,物理地址不一定连 ...

谢谢及时的回答~
页: [1]
查看完整版本: 关于数组的一些问题: