C程序中变量的地址

shi*_*iva 3 c

#include <stdio.h>

main()
{
    int i = 5;
    printf("%d \n" , &i);
}
Run Code Online (Sandbox Code Playgroud)

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

tpd*_*etz 9

是的,它可以.以下是类似问题的解释:

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

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