關於程式設計問題,c自加的問題,為什麼執行結果是

時間 2022-03-08 16:35:16

1樓:75_飛星

c語言標準只規定了遞增遞減運算子所應該達到的效果,但卻並沒有對具體實現做任何規定,這就使得不同的編譯器選擇了不同的實現方法,主要方法有兩種,

第一種方法是每次遞增遞減操作之後結算一次變數的值,

以x=(i++)+(i++)為例,假設i初值為1,首先取i值,也就是i,接著結算,i等於2了,接著用2加前面的1,得到3,接著在一次結算,這時i=3。語句執行完畢

第二種方法是語句完成之後統一結算自運算操作變數的值,

同樣以x=(i++)+(i++)為例,假設i初值為1,首先取i值,為1,接著在取i值加到1上,1+1=2,接著對i的兩次遞增運算結算,i=4。語句執行完畢

vc6採用了第二種方法,也就是你的語句是1*1,然後結算時進行了兩次遞增,因此i是3.

2樓:

別糾結a=(++b)+(++b)+(++b);這種表示式的值,這與編譯器有關,有的編譯器做出來是24。你的編譯先把前兩項計算完畢存入乙個臨時變數,值為14;再加最後一項8即是22。而得出24的編譯器則是把3項全計算完,再相加,自然是8+8+8=24!

除了教官以此來作難學子外,到處都在強調要避免這種寫法!

為什麼我在這c++除錯程式後程式介面只出現一秒就消失了?程式執行結果是對的,但因為很快消失而無發看清

c語言編寫程式後,為什麼執行時自動關閉?

3樓:哎呀沃去

在前面變數定義部分增加:char buffer[20];

scanf改成:scanf("%s",buffer); ch=buffer[0];

4樓:鳳舞天族

你執行的時候按ctrl+f5就不會關掉了,最後一行顯示press any key to continue!

我用dev-c++編譯的c程式,為什麼程式一執行就自動關閉啊,鏈結果都來不及看

5樓:匿名使用者

第一步:加乙個標頭檔案#include

第二步:在最後加system("pause");

6樓:匿名使用者

在程式末尾加system("pause");或int i;cin>>i;都可以讓程式停。

7樓:喻元愷

那是你沒有寫system("pause");的問題啥

c 為什麼s會出現問題,c 問題,為什麼scanf s ,str 這樣是錯的,我定義是string str的

1你輸入和輸出的都是字元 那麼這個陣列肯定要定義成字元型陣列 char str 1 2str 0 是乙個字元型指標 而傳給scanf和printf的引數都應該是位址直接str即可 3初始化的時候,str 1 已經限定了長度是1那麼這時候你再賦值多個字元,程式是不會報錯,且可以執行的但在真正的程式設計...

關於程式設計的問題,乙個關於程式設計的問題?

c語言就是一種組合語言。就是用來編寫程式的,你要程式設計序,你就要想要編什麼樣的程式,想到要編寫的程式了,你就可以去看一些相關的資料了。你還可以學其他的程式語言。c語言博大精深啊,作業系統都可以編,你好好研究吧,我是計算機專業的,大一在學,現在大三還在學啊 仁兄,先弄懂你要幹什麼再學c吧,c不是說學...

學C 程式設計突然冒出的兩個問題,C 程式設計,問題出在兩個過載運算子 , 上或者主函式裡,謝謝

不管c,c 基礎其他的基礎多好,不懂指標的話,還不太算入門。在你不是十分非常明白 熟悉 理解指標的情況下就不要用指標,不過如果你很熟練的話就用吧 物件導向和面向過程的語言編譯的不一樣,物件導向的對計算機來說要編譯一些沒用的東西,所以會慢一點 c 程式設計,問題出在兩個過載運算子 上或者主函式裡,謝謝...