繁体   English   中英

C++ 语法问题 - 为什么我不能用逗号分隔不同类型的变量定义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM