使用指向该变量的指针初始化变量

Jer*_*yer 5 c pointers initialization

在C中,以下是明确定义的吗?

void* ptr = &ptr;
void* array[1] = {array};
Run Code Online (Sandbox Code Playgroud)

换句话说,您可以使用变量的地址来初始化该变量吗?它似乎与GCC编译器一起工作,但我只是想知道它是否是我可以依赖的东西.

编辑:这实际上是定义指向引用相同变量名称引用的指针的副本

小智 0

它应该是合法的。由于 ptr 不是 const,因此它的初始化值在 .text 代码区域中并不固定,因此它应该在运行时已知并以正确的值写入 RAM。