1樓:匿名使用者
c語言的標準中,對這類「帶***的表示式」的實際執行次序,規定的不嚴格。
故不同的c版本可能有不同的結果。
有的版本答案是a為9,也有的版本答案是12。您的那個版本是10,不知是什麼版本。
答案是12的例如turboc。它的規則是把三個前面的++都執行完才做加法。
而答案是9的版本,其次序我想您可以理解的。
答案是10的版本,我還不瞭解他是怎樣的規則。
我覺得,這一點是c語言的一個缺點。
實際程式設計序時,最好儘量迴避這類不確定的語義。
2樓:匿名使用者
上述計算過程是這樣的,先計算 ((++i)+(++i)) ,裡面的兩個i自增兩次後都變為 3,再相加,結果為6,然後這個再進行 (6+(++i))的計算,結果i自增變為 4,因此最後結果為10
你可以計算一下a=(++i)+(++i)+(++i)+(++i)+(++i)+(++i);按我說的方法,你覺得它的值是多少呢?是不是28?
;而不是27
3樓:
i++和++i的優先順序比較高,先算。另外注意這倆個的區別i++,先使用i,再++。++i先加1,再使用。
這是我寫的程式
#include
using namespace std;
int main()
先前兩個++i,後i=7;後一個i++先使用i=7;故k=21。算完後i=8
c語言問題,C語言問題!
prid32是個什麼?而且你的雙引號得加轉義符吧?去掉prid32前後的雙引號,另外prid32是否有定義?你的這個軟體支援c99或者c11嘛 就像vc6.0版本太老就不支援c99 看看軟體支不支援 沒有巨集定義,在標頭檔案下面加 define prid32 d c語言問題!因為s是一個指向floa...
c語言問題,c語言問題
include void main 定義f 0 1 f 1 1 for i 2 i 20 i 從2開始到19做迴圈,這裡你少打一個i f i f i 2 f i 1 例如當前i 2則f 2 f 0 f 1 2 迴圈繼續 i 3則 f 3 f 2 f 1 3 迴圈繼續.for i 0 i 20 i 從...
C語言問題,C語言問題,求助
數學水平是要的,重要的是邏輯思維!函式也是要的,沒那你就寫不出什麼好的程式!這函式又和課本上的數學函式有點不一樣!但不象數學函式那麼難,但比數學函式靈活,也有意思。可不是要所有課本的數學函式!課本數學可以不好,但是你邏輯思維一定要好,熊貓燒香知道吧,寫這程式的人只是中專畢業!英語前期是不需要的!因為...