【发布时间】:2017-02-13 02:47:09
【问题描述】:
在 C 中,以下是明确定义的吗?
void* ptr = &ptr;
void* array[1] = {array};
换句话说,你能用一个变量的地址来初始化那个变量吗?它似乎适用于 GCC 编译器,但我只想知道它是否可以依赖。
编辑:这本质上是Defining a pointer to refere to same variable name's reference?的副本
【问题讨论】:
-
为什么你认为它可能不起作用?在我看来是合法的。就像在里面的一张纸上写了编号的盒子,里面有自己的数字……
-
或者您担心在评估初始化程序时不具有地址的变量? span>
-
“定义良好”可能是拉伸它,但我不能明确地说它是未定义的。
void *是特殊的,但我不知道这种特殊性是否延伸到void **。 -
好吧。 standard (6.7.9) 对此没有任何限制。如果不禁止,则允许..
标签: c pointers initialization