gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:05:31 36 4
gpt4 key购买 nike

int main() {
std::cout << 1, std::cout << 2;
return 0;
}
上面的代码片段在语法上是正确的,因为逗号可用于分隔语句。然而,
int main() {
int a, std::string b;
return 0;
}
这会返回一个错误

Expected initializer before 'b'


为什么是这样?是否在某些情况下我不能使用逗号分隔语句?例如在这种情况下定义变量?

最佳答案

逗号从不分隔语句。您的第一个示例是单个语句,由包含 comma operator 的表达式组成。 .它恰好做同样的事情,就像你写了两个语句 std::cout << 1; std::cout << 2;但它们在语法上并不等效。
同样,你的第二个例子是(试图成为)一个单一的声明语句,它在语法上不是有效的。可以使用逗号(而不是逗号运算符)来分隔两个相同类型的声明 int a, b;有一些变化,例如 int a, *b; ,但这仍然是一个声明语句。

关于C++ 语法问题 - 为什么我不能用逗号来分隔不同类型的变量定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65261928/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com