1樓:飄渺世間天
標準裡說同一表示式中對同一變數的引用順序是不確定的,如果該表示式裡還有一些帶***的操作因而導致該變數值的改變,那麼表示式的值因此也是不確定的,比如你這裡:
j=(i++)*(++i)+(i--)*(--i);
按標準規定,先算(i--)*(--i)或是其中的i--或--i還是先算(i++)*(++i)或是其中的i++或++i的順序都是不明確的,屬於未定義行為,各種編譯器廠家可以根據自己的喜好來定製表示式的求值順序。
類似的還有同一表示式中的函式呼叫順序:
int foo()
int bar()
void foobar(int, int){}foobar(foo(), bar())這裡是先呼叫bar還是foo也屬於未定義行為。
這類題挺無聊的,以後遇到就踢開,54之。
2樓:半成品小店
各個編譯軟體對運算操作的定義略有不同
比如++ --
有的先+ 有的原值不變
這就需要我們在編譯之前自己測試一下了
當年我學c時老師就是這麼講的
3樓:
不要這樣寫**,
這種**的優化次序在c和c++標準中都未定義,
也就是說,編譯器可以按照任意順序計算該表示式
4樓:匿名使用者
這種題目見多了,純屬無聊,毫無應用價值。樓主兄弟別跟這種題目一般見識
5樓:匿名使用者
同意飄渺世間天的答案.
我用c#做的結果是30
高分請教VC 的學習問題
vc只是一個ide,整合開發環境。至於視窗程式,你得了解 windows作業系統有許多關於圖形 介面的api,當c 出現後,微軟將它們再次以類的形式進行封裝,這就是mfc 當然不僅僅包括介面類 這樣做,主要是為了提高開發效率。程式的靈魂是演算法,所以不要小瞧自己了,你寫的俄羅斯方塊,五子棋,連連看,...
關於VC 6 0的問題
1.c和c 都有標頭檔案 h 原始檔 c或.cpp 的概念 一個專案 就是能夠實現一個完整的既定的功能的軟體 可以包含很多很多的檔案,當然也可以包括像stdio.h或者iostream這樣的標準庫檔案 2.簡單來說 工程 也就是專案 的作用就是把各個檔案組合在一起,再普通一點就是把所有的檔案都放在 ...
VB和VC的區別,VC和VB,還有C語言有什麼區別
相同點 都是高階程式語言不同點 vc擅長於底層處理,同時也因此編寫同樣功能的程式時vc的工作量一般要比vb高上很多,但是vc的程式執行效率高,生成程式小。vb是物件導向的程式語言,其語言描述將近事物的實際關係,所以更容易學習,而vc程序導向,每一步的計算你都要完全把握。vb是容易做windows圖形...