专业C/C++软件开发
实际在gcc下测试, 输出結果为5.
从理论上来说, 不应该也不可能出现-5的情况.
局部变量是分配在栈空间上的.
在函数内部连续的局部变量, 如果在没有出现对齐的情况下, 即兩个变量中间没有未用字节时, 地址是连续的.
也就是说 a和b的地址应该是连续的(但实际上因编译器不同而有可能不连续.)
那么就有先分配a还是先汾配b的区别, 这一点同样是编译器决定的.
无论如何 不应该出现-5的结果.
你说的很有道理我换了别的编译器,发现有-3和5的就是你说的先分配哪个的问题。但是我一开始是在vs2017上得到的-5,打印地址之后发现编译器先分配b再分配a中间还莫名其妙地留下八个字节!?为什么这种情況都会对齐
无法理解,vs有些想法是理解不了的
你对这个回答的评价是