C程序中变量的地址

#include <stdio.h>

main()
{
    int i = 5;
    printf("%d n" , &i);
}

重复执行上述程序是否会导致变量i地址不同?


是的,它可以。 以下是一个类似问题的解释:

它表示您的程序每次运行时都会加载一个不同的(虚拟)地址。 这是一个称为地址空间布局随机化(ASLR)的功能,是大多数现代操作系统的一项功能。

从这里开始:为什么在C中每次执行后变量的地址变化?


是的,它会改变!

指针用于存储变量的地址,每次执行程序时变量的地址可能会发生变化。


每次程序被您的操作系统加载到虚拟内存中时,大多数情况是程序的内存地址每次都会重新定位。 因此,每次打印变量的地址时,每次运行时都会有所不同。

链接地址: http://www.djcxy.com/p/82495.html

上一篇: Address of a variable in C program

下一篇: Persistence of local variables in memory after end of function scope?