堆栈生长方向

  • 栈的开口可能朝上 可能朝下 一般认为: 开口朝下
  • 不管栈开口向上还是向下,buf的内存地址buf+1永远向上的
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. void main()
  6. {
  7. int p1;
  8. int p2;
  9. //静态编译 buf所代表的内存空间编号就已经定义下来了
  10. char buf[128];
  11. //debug模式 &p1:1505780, &p2:1505768 p2的值小 说明开口朝下
  12. printf("&p1:%d, &p2:%d\n", &p1, &p2);
  13. system("pause");
  14. }

内存四区堆栈生长和存放数据增长方向 - 图1

总结

  • 堆栈生长和存放数据增长方向是两个不同的概念