我读过 C++ 中的语句通常以分号结尾;所以这可能有助于解释表达式语句是什么。但是,通过举个例子,你会怎么称呼表达式呢?
在这种情况下,两者都只是语句或表达式语句或表达式吗?
int x;
x = 0;
原文由 user942451 发布,翻译遵循 CC BY-SA 4.0 许可协议
我读过 C++ 中的语句通常以分号结尾;所以这可能有助于解释表达式语句是什么。但是,通过举个例子,你会怎么称呼表达式呢?
在这种情况下,两者都只是语句或表达式语句或表达式吗?
int x;
x = 0;
原文由 user942451 发布,翻译遵循 CC BY-SA 4.0 许可协议
表达式 是“指定计算的一系列运算符和操作数”
这些是表达式:
1
2 + 2
"hi"
cout << "Hello, World!"
最后一个确实是一个表达式; <<
is the output operator, cout
(of type ostream
) and "Hello, World!"
(string literals) are the operands.运算符返回左边的操作数,所以 (cout << "Hello, ") << "World!"
也是一个有效的表达式,但也不是一个语句。
当一个表达式后面跟一个分号时,它就变成了一个 表达式语句:
1;
2 + 2;
"hi";
cout << "Hello, World!";
原文由 Adola 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答469 阅读✓ 已解决
表达式 是“指定计算的一系列运算符和操作数”(这是 C++ 标准中给出的定义)。例如
42
、2 + 2
、"hello, world"
和func("argument")
。赋值是 C++ 中的表达式;函数调用也是如此。我没有看到术语“语句”的定义,但基本上它是一段执行某些操作的代码。示例是复合语句(由
{
…}
中包含的零个或多个其他语句组成)、if 语句、goto 语句、return 语句和 _表达式语句_。 (在 C++ 中,但不是在 C 中,声明被归类为语句。)术语 语句 和 表达式 由语言语法非常精确地定义。
表达式语句 是一种特殊的语句。它由一个可选的表达式和一个分号组成。计算表达式并丢弃任何结果。通常这在语句有副作用时使用(否则没有多大意义),但你可以有一个表达式语句,其中表达式没有副作用。例子是:
null 语句是一种特殊情况。 (我不确定为什么要这样对待它;在我看来,将其作为一种不明确的陈述会更有意义。但这就是标准定义它的方式。)
注意
是一个语句,但它 不是 一个表达式语句。它包含一个表达式,但该表达式(加上
;
)并不构成整个语句。