定义变量时是如何分配它的存储器单元地址的?

如题,他们是随机分配的,还是遵循一定的原则?

假如他们时遵循原则的,那么比如:

我在主函数main中定义一个变量 int arr;

又在子函数boy中定义一个变量 int arr; 由相关知识我们可以知道,arr具有表示该变量存储地址的含义,又在编译器中这样的定义时许可的,那么又为什么不会存在函数的覆盖的情况?

再假设他们是随机分配的,那么我想这样也很可能存再覆盖造成的出错的情况。

//

换句话来说,我想问一下,定义变量时对存储空间的申请是如何进行的?

谢谢~

KmiY
浏览 1932回答 2
2回答

努力提升

首先2个函数的内存空间是不一样的,就像2个不同箱子虽然2个变量名是相同的但保存的地方不一样,所以不会造成覆盖。具体的底层实现你可以去找找相关的文档。

qq_追梦_26

这些知识涉及到了操作系统的内存管理方面的知识了,如果说的话很多,百度C语言内存分配看看
打开App,查看更多内容
随时随地看视频慕课网APP