簡體   English   中英

而哨兵變量與后遞增運算符

[英]while sentinel variable with post-increment operator

之間有什么區別:

while(*s++ != '\0') {}

while(*s != '\0') {
   s++;
}

s是一個char * 后者工作正常。 但在第一個循環結束時, *s不等於'\\0'

的情況下

 while(*s++ != '\0') {}

在條件檢查語句本身中,該增量是作為后增量運算符完成的。 在這種情況下,值變化(增量)是對操作員進行值計算之后的副作用。 因此,在使用該值(比較)之后, s會增加。

另一方面,

while(*s != '\0') {
   s++;
}

增量在條件塊內作為后增量發生,僅在條件為TRUTHY時才執行。 一旦條件被評估為假, s就不會增加。

暫無
暫無

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

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