Vernestelte for mit gleicher Variable
-
Dieses Codestückchen gibt für MSVC++ 2010 und g++ 4.4.5 folgendes aus:
for ( int i=0; i<3; ++i ) { std::cout << i << std::endl; for ( int i=0; i<3; ++i ) std::cout << " " << i << std::endl; } /* => 0 0 1 2 1 0 1 2 2 0 1 2 */
Ist das Standard-konformes Verhalten? Bzw was sagt der Standard dazu, wenn in verschachtelten for-Schleifen identische Variablennamen verwendet werden?
-
Ja, das ist standardkonformes, definiertes Verhalten. Du darfst jederzeit Variablennamen aus höheren Skopes benutzen. Die werden dann verdeckt.
-
... inner scope ueberdeckt outer scope ... macht aber keinen Sinn und nur unnötig schwer wartbaren Code.
-
Ok, danke!