優先級錯誤引發的報錯

一 寫在開頭

1.1 本文內容

記錄一次由於運算符優先級錯誤而引發的報錯的緣由和解決方法。spa

 

二 報錯狀況,緣由和解決方法

今天在寫代碼的過程當中,發現了一個頗有意思的報錯。報錯狀況和出錯的代碼以下圖所示。指針

出錯的代碼行是第34和35兩行。爲何會報錯?很簡單,由於在上述兩行代碼中,點(.)運算先於星號(*)運算執行了。在執行點運算時(array + i)是一個指向結構體的指針,而取指針所指向對象的成員是不能用點運算的。將上述兩行代碼改爲以下形式,問題解決。code

1 (*(array + i)).data = t; 2 (*(array + i)).rank = -1;
相關文章
相關標籤/搜索