当我写的时候:
int a;
int c;
或
int a, c;
a
和c
何时存储在内存中的相邻 位置? ((&a+1)
等于&c
?)- 您定义它们的方式对此有影响吗?还是只取决于机器?
最佳答案
不,您不能保证a
和c
在内存中相邻的位置,但通常情况就是这样。我相信 通常 &a - 1
将等于 &c
因为堆栈通常 向下增长。
如果您需要连续变量,则使用数组。
Does the way you define them has influence on this?
通常编译器不会重新排序,除非它必须这样做。例如为了满足某些对齐方式或出于性能原因。
此外,正如 Mysticial 所说,编译器有时可以优化变量,使它们根本不存在于内存中。
关于c - 变量定义和地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929905/