簡體   English   中英

=(賦值)的例子是右結合的

[英]Example of = (assignment) being right-associative

=賦值運算符的結合性在哪里會影響表達式? 我認為關聯性與共享運算符的操作數有關,但在賦值的情況下,這將如何工作? 一些(可能)相關的例子是:

x = 1
x + 2 = y + 3 = z + 5

這是否只是意味着,在上面的作業中,我們將有:

y + 3 = z + 5

以前做過,例如:

x + 2 = y + 3

或者還有哪些其他場景可以讓分配關聯性“很重要”?

您的示例沒有演示任何內容,因為只有當您有多個具有相同優先級(或相同的運算符)的運算符彼此相鄰時,關聯性才會發揮作用。

考慮x = y = 42 ,它將兩個變量都設置為 42。

由於右關聯性,它被解析為x = (y = 42) ,其中y =...返回y的新值,即 42。

這就是它起作用的原因。 如果=是左關聯的並且它被解析為(x = y) = 42 ,那么:

  • 在 C 中它根本不會編譯,因為x =...返回一個右值而不是左值,並且不能分配給那些。
  • 在 C++ 中,賦值返回左值,它會像x = y; x = 42; x = y; x = 42; ,這遠非直觀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM