① c語言的編譯器,打開同一個程序,一樣的輸入,為什麼有時輸出是對的,有時是錯的
如果真是這樣,恐怕是跟內存泄漏、野指針之類的問題有關,錯誤不容易重現,因為雖然輸入相同,但每次運行時系統的情況不同,編譯器分配的內存情況不同。
② 為什麼相同的代碼相同的編譯器在不同電腦上的運行結果不同
函數f1中的變數c,你在未初始化的情況下就使用了,就是這句while(c!=0)。這時c的值是不確定的。
③ 用C語言寫了一個程序,如圖。請問為什麼用不同編譯器執行同樣代碼,結果不同
把 這一句: int b = b + 1;
改為 b = b + 1;
結果就一樣了
因為你在while中重新定義了變數b,但是沒有給b賦值,b的值是隨機的,有可能出現任何值
④ 每個編譯器都不一樣么 c語言一般用什麼編譯器 每次一種編譯器不能編譯 另一種卻能編譯出
編譯器就是c語言編譯成二進制的東西,
不同的編譯器是不同的, 比如16位系統和32位系統的編譯器就不同,因為16位的認為int是2位元組,32位的則認為是4個位元組。 另外 linux上的編譯器跟windows下的編譯器也不同,linux上的認為內核空間佔1G,而windows下則認為佔2G, 此外兩個系統對環境變數以及其他的設置也不同所以編譯器更不能用。
而且不同的CPU的指令集時不同的,所以同樣int a =1 最後被編譯成的二進制代碼也是不同的。
C語言的編譯器有很多,windows下的編譯器也有很多,不同的編譯器可能會做一些不同的優化,linux下的gcc也可以添加選項讓他編譯windows下運行的程序。
main(int argc,char*argv[ 】 ) argc 是你的參數個數 argv是你的參數。
比如你最終程序叫 add 那麼 你在命令行執行add 1 2 那麼argc =3 第一個參數使你的add, 第二個第三個就是 1 2, 在函數內部你就可以獲取這倆參數進行相加然後列印
visual 是個IDE,集成開發環境,已經集成好了windows下使用的編譯器連接器 等, 編寫代碼完成後直接點擊編譯就行了。 IDE的默認編譯器是可以更改的,不同的IDE設置不同。
⑤ C語言代碼在不同編譯器下運行結果不同,請問原因
可以把fflush(stdin); 刪掉,有時候把這個刪掉就行了。scanf("%c", &ch);換成ch=getchar();應該就行了。
至於兩個編譯器不一樣的情況,這是肯定會有的,畢竟是兩個不同的編譯器。
⑥ C語言同一段代碼,同樣的文件,編譯器為什麼運行結果不一樣
一般來說,C語言程序被編譯為可執行程序後,每次都輸出都是相同的,但有些特殊情況例外,比如,代碼中引入了隨機變數,並讓它出現在輸出結果中。
⑦ 同一代碼在不同編譯器上顯示不同
出來結果不是看運行的機器是多少位,而是看這個程序是多少位的,即使你的機器是64位出來的結果還是這樣
你用tc這個16位編譯器,出來的是16位程序,那麼裡面的東西都是按照16位來的
你用vc按32位進行編譯,出來的是32位程序,那麼裡面的東西都是按照32位來的
相信你是自己明白為何16和32位出來不同結果,我也不解釋了
計算機多少位的你可以下載個CPU-Z進行查看,還能看出操作系統多少位
計算機多少位 操作系統多少位 程序多少位 都是不同的概念
我的機器64位 操作系統32位 可以運行多數的32位 和 16位 windows或dos程序,但是一般的64位程序運行不了,因為操作系統只有32位。
⑧ 為什麼匯編代碼在不同編譯器上結果不一樣
也許是masm版本不同引起的,高版本功能更強、會進行某些優化。
另,有些功能,在匯編中也會有不同的實現方式;再,高版本對偽指令的用法也許進行優化調整。
⑨ 為什麼c語言在不同編譯器運行結果不一樣
這種代碼本來就是不嚴謹的,i++只是說當前表達式計算結束後再自增
三個i++啥時候對i自加呢?
這種表達式都是一些水平不行的」教授「寫的教程帶來的垃圾書,扔了吧
⑩ 同一個C++程序為什麼在兩個相同的VS2008編譯器上運行的結果不一樣,非常之急,在線等!
貌似如果是windows程序就必須該設置,例如在網上下了一個小程序,裡面只有CPP文件和一個resource.h,這是一個WinMain程序,懶得建立一個win32工程,直接上來就打開CP文件進行build,編譯器報告上面的錯誤(如題).
原因: VC++此時假定你要建立Console程序而不是GUI程序,而Console程序的Startup Code要載入的是main()而不是Winmain(),導致連接失敗。
改正的方法: 將菜單Project/Settings下Link項Option內的/subsystem:console改為/subsystem:windows。另外也可以先New一個Win32 GUI Project,再拷貝入你的程序,再Build。