2013-10-03 46 views
-5

爲什麼不能編譯下面的代碼?基本上下面的代碼中不正確的是什麼?我假設聲明相同的變量兩次而不分配任何值將是問題。爲什麼不能編譯下面的程序?

#include <iostream> 
using namespace std; int foo() { return 1; } 
int main() { int a; int a; cout << foo() << endl; return 0;} 
+3

爲什麼你不嘗試刪除第二個變量聲明,看看它是否會編譯(提示,是的,它會) – Justin

+3

你已經聲明瞭'a'兩次。 – unlimit

+0

我這麼認爲。這實際上是一箇中期問題,我現在沒有任何IDE進行測試,所以我只是想確定一下。謝謝! @Justin – Gela

回答

1

刪除一個「int a;」宣言。即使有可能,也沒有理由這樣做。