close
以下code,if會先判斷a再判斷b。
只有a成立才會繼續判斷b,否則馬上跳出。
if( a && b ){
......
}
如果a,b的順序顛倒:
if( b && a ){
......
}
if會先判斷b在判斷a。
這樣會有什麼問題呢? (不是就跟上面一樣嗎?)
假若a是(ptr_1 != 0),b是(ptr_1->data == ptr_2->data)。
不先判斷a是否成立而先判斷 ptr_1 和 ptr_2 內容資料是否相等,
若(ptr_1 != 0)不成立則會發生記憶體讀取錯誤。
因此,以上code可以改成下面的code:
if( a ){
if( b ){
......
}
}
先判斷a再判斷b,雖然與第一個相同,但這樣就不會有理解上的錯誤。
全站熱搜
留言列表