内存中栈上的地址是向下增长,堆得地址是向上增长。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int mmap[10];
    int i;
    for(i=0;i<9;i++)
    {
        mmap[i] = i;
    }
    for(i=0;i<9;i++)
    {
        printf("%d ------- %d\n",mmap[i],&mmap[i]);
    }
    printf("\n");
    int *a;
    a = (int *) malloc(10 * sizeof(int));
    for(i=0;i<9;i++)
    {
        a[i] = i;
    }
    for(i=0;i<9;i++)
    {
        printf("%d ------- %d\n",a[i],&a[i]);    
    }
    return 0;
}

运行结果:

0 ------- -718935696
1 ------- -718935692
2 ------- -718935688
3 ------- -718935684
4 ------- -718935680
5 ------- -718935676
6 ------- -718935672
7 ------- -718935668
8 ------- -718935664

0 ------- 434298896
1 ------- 434298900
2 ------- 434298904
3 ------- 434298908
4 ------- 434298912
5 ------- 434298916
6 ------- 434298920
7 ------- 434298924
8 ------- 434298928

 

相关文章:

  • 2021-11-21
  • 2021-07-17
  • 2021-08-11
  • 2021-08-20
  • 2021-12-31
  • 2022-12-23
  • 2021-05-28
  • 2021-06-26
猜你喜欢
  • 2021-11-16
  • 2021-06-29
  • 2021-10-12
  • 2021-12-24
相关资源
相似解决方案