問題描述
C ++中復合語句和塊之間的區別? (Difference between a compound statement and a block in C++?)
我經常聽說“複合語句”這個詞幾乎可以互換地用於表示塊,以 {}
的大括號開始和結束。我看不出一個塊有什麼不同。
所以我的問題是:
- “塊”和“複合語句”之間有區別嗎?
參考解法
方法 1:
To cite the actual C++ standard, ISO/IEC 14882:2017 (C++17), Section 9.3 "Compound statement or block":
9.3 Compound statement or block [stmt.block]
1 So that several statements can be used where one is expected, the compound statement (also, and equivalently, called “block”) is provided.
compound‑statement: { statement‑seqopt }
there is no difference between the terms of a block and a compound statement in their respective meaning.
You can use both terms interchangeably for a "compound" or sequence of statements (it may even be only one statement; the amount of statements doesn´t matter) starting by a "{
" ‑ opened curly bracket and terminating by a "}
" ‑ closed curly bracket.
方法 2:
A "block" of code, delimited by { }
to indicate entry‑exit points, limits the liftetime of any variables defined inside the block to that block, wheras a "compound statement" might not unless it uses { }
inside it. A function definition may be construed as a "named block" of code with an entry and exit points.
(by RobertS supports Monica Cellio、RobertS supports Monica Cellio、srinivirt)