for(i=a,j=b; i<c&&j>d; i++,j--){....} 需要滿足二個條件
for(i=a,j=b; i<c,j>d; i++,j--){....} 從左到右滿足最右邊的條件
以前都是把多個條件用 逗號 分隔開寫。for(i=a,j=b; i<c,j>d; i++,j--){....}
一直沒有什么問題。但是今天我做了一個題,一直找不出來錯誤,我單步調試,最后終于被我發現,就是這種寫法錯了。
原來,我之前的寫法其實是逗號運算符, i<c, j>d 結果就是 j>d的結果~~
要想限制,必須要加上&&
逗號運算符:
可用于將相關的表達式鏈接在一起。由于逗號鏈接表達式從左到右進行計算,因此最右邊的表達式的值即為該組合表達式的值。
Example: value = (x = 10, y = 5, x + y);
value = 15;
一些逗號運算符的應用示例:
在for循環中: for ( n = 1, m = 10; n <= m; n++, m++ )
在while循環中: while( c = getchar( ), c != ‘\n’ )
數值交換: t = x, x = y, y = t;