面经 - C/C++ 基础篇

版权声明: https://blog.csdn.net/Dream_Weave/article/details/82086039
  1. 下列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无关,而是一个未定义值。

  2. 待更新...

猜你喜欢

转载自blog.csdn.net/Dream_Weave/article/details/82086039