正如我们所看到的那样,再32位地址总线的环境下,我们所打印出来的地址已经能说明很多的问题了。Of course,就是函数以及变量在内存中的存储的相对的位置,应该是我所画出来的这样:
OK,这是根据VS编译器的结果所反向推导的,但是问题却出来了。在用64位地址总线的时候,得到的结果却令人奇怪。
As we can see,我发现此时Add函数的地址要比main()函数高,而此时b的地址比a地址高了,两个都反过来了。为什么会这样呢?据我了解的是,地址就是像房间号一样,也可以理解为可能性,比如32位地址总线,对于每一根线都有0和1两种可能,32位就有2^32可能性,将每一种可能性转化为一个地址,正好像二进制,因此再把二进制转化为16进制。但是为什么地址的相对大小会发生变化呢?这一点我百思不得其解,有没有哪位高手帮我解答一下,万分感谢,当然由于本人水平实在偏低,可能对于一些概念的理解也有偏差甚至错误,麻烦各位批评指正。