if else連用時的陷阱

2022-08-25 21:36:23 字數 472 閱讀 4970

近日,在實現《the c  programing language》上的乙個練習題時,寫出了下面一段**

for(i=left+1; i<=right; i++)

本意是第乙個 if 和 else 相匹配,但是為了**簡潔,效仿《tcpl》上的普遍做法,省略掉了花括號,

結果卻忽視了if-else語句的結合規則,導致else和它緊鄰的那個if相結合,因而使程式結構完全發生變化,變成如下所示結構

for(i=left+1; i<=right; i++)

所以,還是帶上花括號比較好

for(i=left+1; i<=right; i++)

else

if( (*comp)(v[i], v[left]) > 0

) swap(v, i, ++last);

}

結構體指標使用時的小陷阱

最近,使用結構體指標時,偶遇bug,後弄清楚了原因,在此記錄一下,防止以後重蹈覆轍,也提醒一下可能和我遇到一樣問題的夥伴們 為了防止錯誤的樣例先入為主,在這裡,先列出正確的開啟方式 typedef struct tnode tree 錯誤的栗子 typedef struct tnode tree w...

SAS巨集中 if else和if else的區別

sas巨集中 if else和if else的區別 data a set x do m 1 to 3 do q 1 to 5 if x q nan and m id and x q id m q then do id m q 1 put 有值 且id相等 id x q id m q 上面 是正常的i...

MySQL in和limit不能連用的問題

今天在mysql上處理乙個資料量達到千萬級的資料庫表時,要取出滿足條件的資料集,然後存入到mongo資料庫,使用jpa提供的pageble去拿分頁,再用多執行緒去取資料時,發現剛開始效率還可以,肯定比單執行緒強很多,但是這個pageable有乙個問題,在生成sql語句時,會自動加上乙個limit 1...