5
在if语句的条件部分中定义变量?
我很震惊,这是允许的: if( int* x = new int( 20 ) ) { std::cout << *x << "!\n"; // delete x; } else { std::cout << *x << "!!!\n"; // delete x; } // std:cout << *x; // error - x is not defined in this scope 那么,这是标准允许的还是仅仅是编译器扩展? 附言:由于对此有很多评论,请忽略此示例“不好”或危险。我知道 例如,这只是我想到的第一件事。