簡體   English   中英

關於序列點的后期增量

[英]Post Increment with respect to Sequence Points

后增量運算符何時會影響增量? 我遇到兩種意見:

1)來自http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_015.htm

POST表示在執行任何賦值操作之后執行該操作。

2)言歸正傳, 關於SO答案 (盡管是C ++)說:

...會將增量延遲到表達式的末尾(下一個序列點)。

后期遞增操作也是如此...

A)等到到達序列點或

B)發生在賦值運算符之后或

C)發生在序列點之前的任何時間?

正確的解釋是C,即。 增量發生在下一個序列點之前的某個時間,特別是C標准(C99,6.5.2.4,2)表示:

更新操作數存儲值的副作用將發生在上一個和下一個序列點之間。

全段引號:

后綴++運算符的結果是操作數的值。 獲得結果后,操作數的值將遞增。 (即,向其添加了適當類型的值1。)有關約束,類型和轉換以及操作對指針的影響的信息,請參見加法運算符和復合賦值的討論。 更新操作數存儲值的副作用將發生在上一個和下一個序列點之間。

不管使用增量運算符的位置在哪里,后遞增操作總是在下一個序列點之前發生。 有關更多信息,請參見此鏈接http://en.wikipedia.org/wiki/Sequence_point

暫無
暫無

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

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