for (int i(0); i < 10; ++i) { ... }
在标准C ++中是否始终允许for循环初始化程序中的int i(0)
语法?
它与g++ -std=c++98
编译良好,但在标准细节方面,我不相信编译器。
答案 0 :(得分:7)
是。它是一个简单的变量声明(语言语法中的简单声明),它在C ++中明确允许用于循环的 for-init-statement (与当时的C相反)。
特别是,在语言语法中,以下是等效的(都是简单声明):
int i(0);
int i = 0;
答案 1 :(得分:6)
以下是 C ++编程语言中的语法相关部分,附录A:
iteration-statement:
...
for (for-init-statement condition_opt; expression_opt) statement
for-init-statement:
...
simple-declaration
simple-declaration:
decl-specifier-seq_opt init-declarator-list_opt;
init-declarator-list:
init-declarator
init-declarator-list , init-declarator
init-declarator:
declarator initializer_opt
initializer:
= initializer_clause
( expression-list )
所以是的,标准C ++中一直允许使用for (int i(0); ...
语法。