版权声明: https://blog.csdn.net/Dream_Weave/article/details/82086039
- 下列C++代码的输出结果是什么?[台湾某著名杀毒软件公司2010年7月笔试题]
// Code 1 int i=1; int main() { int i=i; } // Code 2 int main() { int i=i; } // Ps:Code1 和 Code2 是等价的。
A. The i within main will have an undefined value. (main() 里的 i 是一个未定义值)
B. The i within main will bave a value of 1. (main() 里的i值为1)
C. The compiler will not allow this statement. (编译器不允许这种写法)
D. The i within main will have a value of 0. (main() 里的i值为0)
解析:当面试者看到int i=i;时,也许第一反应就是怎么有这么诡异的代码?但是在C++中这样做是完全合法的(但显然不合理)。int i=i, i变量从声明的那一刻开始就是可见的了,main()里的i不是1,因为它和main()外的i无关,而是一个未定义值。 - 待更新...