1樓:匿名使用者
可以進入除錯模式,觀察每個變數的執行狀態。就會發現問題所在的。
這個c程式編譯顯示沒有錯誤,為什麼不能執行?
2樓:育知同創教育
引數復必須制是指標(地址
bai)才可du以zhi。 scanf()函式要求參
數必須是指標類dao型,即將地址傳輸到其內,才可以讓a , b變數中獲取到資料。 如果你學過指標,你就會理解了。 c語言中函式的呼叫中,引數傳遞,只能傳遞數值。
如果只是將數值傳遞過去(接收者是形參),在子函式中變化,形參的變化,不會影響到實引數據的內容。 c中,每定義一個變數,系統都會在記憶體中給其分配一個空間用來儲存資料。而這個空間的編號就是這個變數的地址。
當我們將這個地址傳遞到子函式中,子函式在運算元據時,就會改變這個地址中的資料,這樣,實參的資料是會發生變化。 而你程式中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作地址去操作,因此會產生系統錯誤,導致程式執行停止。
c語言程式編譯沒有錯誤執行時出錯問題在哪
1 編譯階段,執行的是對單個檔案的轉換,從源 轉換成二進位制檔案。2 連結階段,將每個原始檔轉成的二進位制檔案,及相關的系統庫檔案共同打包生成可執行檔案。3 從定義上可以看出,連結階段,出現錯誤有兩種可能 1 函式中引用了不存在的函式。2 編譯環境有問題,導致ld出錯。首先編譯已經報錯 有一個找不到...
為什麼c語言程式編譯正確但不能執行
這當然原因非來常多,比如 編譯器編源譯不夠嚴格 程式bai有很大的風du險等等,最簡zhi單的一個例子如下 daoint a scanf d a 可以確定的一點是 一旦在執行中出現錯誤,大多是較為嚴重的錯誤,須引起重視,否則,一旦錯誤非常嚴重,必會導致許多嚴重的後果,如宕機 卡屏甚至直接導致藍屏。編...
印表機後臺程式服務沒有執行
裝windows優化大師也可導致關閉印表機後臺程式服務,刪除windows優化大師,1 在桌面選中 我的電腦 滑鼠右鍵選擇 管理 2 在 管理 視窗中,選取 服務和應用程式 擴充套件專案下的 服務 選項 如圖 在右側出現系統服務列表中找到 print spooler 服務,雙擊進入 print sp...