int i=1; main() {int i=i;}有什么错?

来源:互联网 发布:网络市场调研的对象 编辑:程序博客网 时间:2024/05/21 15:07

int i=1; main() {int i=i;}有什么错?这是一道面试题,原以为编译会不通过。但是竟然编译通过,但是结果却是一个随机数

代码如下
#include "stdafx.h"#include <IOSTREAM>using namespace std;int i = 0;int main(int argc, char* argv[]){cout<<i<<endl;int i = i;cout<<i<<endl;return 0;}
结果截图:

对此进行解释:
当在局部变量里定义了一个和全局变量同样的名字时,再引用那个名字就相当于用了局部变量的名字而很明显你局部变量的i还没初始化,所以用i初始化i是有问题的
总结:此代码合法但不合理


1 0
原创粉丝点击