【发布时间】:2016-11-08 07:30:32
【问题描述】:
我想知道为什么这个 C++ 代码是有效的并且不会导致任何错误:
extern int B;
int A = B;
int B = A;
int main()
{
printf("%d\n", B);
system("pause");
return 0;
}
首先,变量A会在某个内存地址中创建,然后它的值会从变量B初始化,然后变量B会返回从变量A初始化它的值,以此类推上,...
那么,为什么这里没有无限循环或任何错误?
程序运行正常,B的值为0
这也适用于 Java:
class A {
static final int AA = B.BB;
}
class B {
static final int BB = A.AA;
}
谁能帮我解释一下这些问题,谢谢!
【问题讨论】:
-
这里要小心。即使代码看起来相似并且看起来表现相似,Java 和 C++ 仍然是非常不同的语言,实际上对于其他相似的代码可能表现得非常不同。
-
见鬼,这是 C 和 C++ 开始不同的领域。
标签: java c++ variables global-variables extern