[讨论]变量地址分配的疑惑
许多课本上有如下解释:程序在编译时,编译器为每一个动态变量分配唯一的地址。但是又有:对于动态变量,只有函数被调用时,才分配空间。
问题是:函数被调用时分配的空间的地址难道与编译时分配的唯一的地址不一样?
我的理解是:在编译阶段,编译器为每一个动态变量分配唯一的地址,这时的地址只是“虚”的,就像我们买的火车票上的座位号一样。而函数调用时分配的地址,就像我们上车时坐的实际的座位号,也许中途有人下车,因此可以动态地选择可用的座位。这个比方的前提当然是假设火车票在同一时间售出。
不知以上理解可否合理,请各位指教!