Mod 不能歸零嗎?為什麼 X % 0 無效
身為程式設計師,我們常常依賴模運算來求餘數。但是,執行 X % 0 會引發錯誤或產生意外行為。為什麼會這樣呢?
未定義的行為
根據 C 標準 (2003),X % 0 是無效表達式。第5.6/4 節指出:
「...如果/ 或% 的第二個操作數為零,則行為未定義...」
因此,任何嘗試執行的程式碼此操作將呼叫未定義的行為(UB)。
實現定義的行為
與模運算相關的另一個令人困惑的行為涉及負數。例如,-5 % 2 可能不會總是產生與 -(5 % 2) 相同的結果。標準規定:
「...如果兩個運算元都非負,則餘數為非負;如果不是,則餘數的符號是實現定義的。」
換句話說,負數模運算的行為並未由標準明確定義,並且可能因實現而異。
以上是為什麼程式設計時X%0無效?的詳細內容。更多資訊請關注PHP中文網其他相關文章!