运行demo5-7,栈区变量的地址,按变量的赋值执行顺序是由低到高,与堆区变量变化相同

来源:6-10 CPP程序的存储区域划分

qq_森林中的小熊_0

2021-03-15

图片描述
由图中可以看出,变量b,s,p2在栈区的地址是递增的,与老师在视频中呈现的由高到低相反。
我用的是vs2019,系统win10,这个情况是否与编译器有关。
以下两张图是视频5-10的截图:
图片描述
图片描述

写回答

1回答

quickzhao

2021-03-16

变量地址分配的大小确实依赖于编译器的行为,我课上应该讲的是32位编译结果。现代编译器可能会有一些优化,会调整变量的排列次序,使得其在各个变量基本对齐的情况下占用的栈空间最小。

0
1
qq_森林中的小熊_0
非常感谢!
2021-03-16
共1条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程