對Visual C++中for語句中初始化部分宣告的變數的作用域存在的問題
在C或C++中對於在for語句中的初始化部分宣告的變數到底具有怎樣的作用域,在“INTERNATIONAL STANDARD ISO/IEC 14882(ISO/IEC 14882國際標準)”中是這樣定義的:(注:ISO/IEC 14882國際標準的內容是Programming languages — C++,即C++語言標準,包括1998-09-01的第一版和2003-10-15的第二版)該貼原出處為:http://hi.baidu.com/froms
6.5.3 The for statement(for語句)
……該貼原出處為:http://hi.baidu.com/froms
3 If the for-init-statement is a declaration, the scope of the name(s) declared extends to the end of the forstatement.
[Example:
int i = 42;
int a[10];
for (int i = 0; i < 10; i++)該貼原出處為:http://hi.baidu.com/froms
a[i] = i;
int j = i; // j = 42
—end example]該貼原出處為:http://hi.baidu.com/froms
……
對於以上給出的例子可以很明顯的說明for語句中在初始化部分宣告的變數的作用域:如果其作用域是從變數宣告開始到該for
同樣的問題發生在while、do … while、switch語句中。
但是Microsoft Visual C++ 1.0卻早在1993年就已經誕生,比