[英]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.