1 代碼運行的平臺硬件不同。
不同的CPU,如嵌入式CPU,intel CPU,以及IBM的CPU,在硬件最底層就是不同的,而C語言是壹門和底層相關性極大的語言,在不同的硬件上運行出不同結果是很正常的。
2 代碼運行的系統不同。
相同CPU在不同操作系統上跑相同代碼時,壹樣會出現不同的結果。這是由於系統底層的實現不同造成的。比如Linux和Windows,在底層處理上就有壹定的差異。
3 編譯器不同,同時代碼中使用了C規範未定義規則的語句。
C語言規範並沒有對C語言的所有行為做定義,所以相同語句,不同編譯器的運行效果可能有所不同。比如同樣的sizeof(int),在16位編譯器上結果為2,而32位編譯器上就會是4。
4 代碼獲取到的外部數據不同。
比如運行代碼時獲取到的其它輸入不同,包括程序中獲取的環境變量,實時信息,以及各種外部輸入等,均有可能出現不同。
比如在做隨機數時,如果以當前時間設定隨機數種子,由於每次的時間是不同的,同壹個程序每次運行的結果都是不同的。非常感謝您的耐心觀看,如有幫助請采納,祝生活愉快!謝謝!