-
這是乙個小問題,但這是乙個大問題!
第1條],關於自增自減運算,很多書都沒有把問題解釋清楚,用C語言是這樣的:
1.後操作:k++ 表示先執行操作,然後進行自加法。
意思是當我遇到 k++ 時,我會先拿 k 的當前值參與操作,然後我會照顧它的自加法。
那麼,“背”到什麼程度呢? 執行當前語句後,會遇到分號; 表示。
語句被執行,所以 k 加 1。 】
2.預操作:++k 表示先自加,再計算。
這意味著當你遇到 ++k 時,你在 k 的值上加 1,然後執行其他操作。
考慮到這兩點,k--和-k是相同的。
其次,當多個自動遞增和自遞減操作組合在一起時,在不同的編譯器上執行時會產生不同的結果。
但是在C語言中,組合的順序,正如高震所說,[“對於++ C,編譯系統盡可能地處理(
從左到右)將幾個字元組成乙個運算子“]。
結合這兩點,我們可以解決這個問題。
首先,根據第2條,組合順序為a=a+++b+++c; 相當於 a=(a++)b++)c;
其次,根據第一條,“後退”到什麼程度? 在執行當前語句後遇到它。
分號; 表示語句的執行已完成,因此 k 將自身加 1。 】
然後,您可以獲得結果。
首先,不管自加法如何,取a和b(均為1)和c(值為1)的當前值,將a賦值給a,即a=1+1+1=3;
然後在分號語句的末尾新增 1,即 a+1、b+1。 而 a 的當前值已經是 3,所以。
a=a+1=4;b的當前值為1,所以b=b+1=2;
所以這個問題的答案的正確結果是 4
-
1.實際執行結果為4;
post) 運算子以從右到左的方式組合,正如高鎮兄弟所說,所以:
a=a+++b+++c 在編譯器中,++ 運算子應與 a=(a++)b++)c 組合;操作完成後,可以通過輸出 b 和 c 的值進行驗證;
3.不同的編譯器可能會得到不同的答案,所以在程式設計時一定要注意語句,語句要簡潔明瞭;
- 無敵分界線---
運算子從右到左(和從左到右):
正面 - 正面。
條件運算(三元圖)。
當我沒有說我真的很糟糕時,扔在上面
如果使用另乙個變數 d=a+++b+++c,則結果為 3;
a=2b=2
c=1,當使用變數 a, a=a+++b+++c 時,結果為 4;
輸出值後:
a=4b=2
c=1 至 a=a+++b+c; 後。
a=4b=1
C1 描述:b 是從 +1 c 開始的運算結果,不改變然後 a+++b++)c
-
a=a+++b+++c 等價於 a=(a++)b++)c
對於++ c,編譯系統將處理盡可能多的字元(從左到右)以形成運算子(在處理標記和關鍵字時相同),例如i+++j將被解釋為(i++)j
-
+ 操作從右到左。
所以 a=a+++b+++c
a+(+b)+(c)
b 返回 B+1,這與 B++ 不同,其中 B++ 返回 B
-
子國文說得很有道理! 我們的老師是這麼說的。 但是,這種問題不需要深入研究,這種說法在實際應用中應盡可能少地使用。
-
++x 是自增量,然後是重新操作。
x++ 是自動增量中的操作。
如果你想要 x=2。
執行 a=(++x)*(x++) 等價於 a=(3)*(3)=9,x 在第乙個 ++x 之後為 3
執行 x++ 後,x 為 4
因為 x++ 是第乙個要執行的操作。
所以它是 3*3
如果你沒有基礎,最好開始學習一些基礎知識。 我不懂基本的C語言,筆試比較難,上電腦比較容易,在網上找一些題目練上級也沒問題。