[英]C++ syntax question - Why can't I use comma to separate variable definition of different types
int main() {
std::cout << 1, std::cout << 2;
return 0;
}
上面的代码片段在语法上是正确的,因为逗号可以用来分隔语句。 然而,
int main() {
int a, std::string b;
return 0;
}
这会返回错误
'b' 之前的预期初始化程序
为什么是这样? 在某些情况下我不能使用逗号分隔语句吗? 例如在这种情况下定义变量?
逗号从不分隔语句。 您的第一个示例是一条语句,由一个包含逗号运算符的表达式组成。 它碰巧做的事情就像你写了两个语句std::cout << 1; std::cout << 2;
std::cout << 1; std::cout << 2;
但它们在语法上并不等价。
同样,您的第二个示例是(试图成为)单个声明语句,它在语法上不是有效的。 可以使用逗号(不作为逗号操作符)来分隔两个相同类型的声明int a, b;
有一些变化,例如int a, *b;
,但这仍然是一个声明声明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.