int i=1; main() {int i=i;}有什麼錯?

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是有問題的
總結:此代碼合法但不合理


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章