-
遞增和遞減運算子優先於大多數運算子,而先例優先於大多數運算子。
和 ||一旦可以確定整個表示式的值,左邊的表示式就不再執行右邊的表示式,而不是 & 和 |
所以,這是第一次:
z = 3 > 0 為真,z --, z = 2,判斷正確。
x = 0, ++x, x = 1 < 5 為真。
y--,y = 4
第二次:z = 2 > 0 為真,z --, z = 1,判斷正確。
x = 1, ++x, x = 2 < 5 為真。
y--,y = 3
第三次:z = 1 > 0 為真,z--,z = 0,判斷正確。
x = 2, ++x, x = 3 < 5 為真。
y--,y = 2
第四:z = 0 > 0 為 false,z--,z = -1,向右跳過。
x = 3,被跳過,並且值保持不變。
y = 2,條件為 false,未執行,值不變。
所以結果是:
x = 3, y = 2, z = -1
-
迴圈條件的自增自減義: z-->0 這個判刑在執行後減去 1,+x<5 在執行刑期前 x 加 1 後判定為小於 5
-
第一次 3>0 &&&1<5 y==4
第二次>0 &&2<5 y==3
第三次 1>0 &&3<5 y==2
第四個 0>0 是 “false”,在 & 之後不再執行,但 z- 仍然要執行,所以結果是 3, 2, -1。 我不知道這個答案是否像你所知道的那樣不同。
-
注意:Z--在迴圈中,先取z判斷>0,然後z-1=2,++x等於1(++x是先加1)。
輸出為 1,4,2
-
多寫幾個自增自減的測試題,然後在電腦上除錯一下,應該就能搞清楚了。
-
z--:之後執行。
x:首先執行。
即第乙個迴圈:z=3>0&&x=1<5
然後 z--;
-
while(z-->0&&+x<5) 請注意,當 z--不大於 0 時,不執行 ++x < 5。
-
計算:從右到左,輸出到 Buffer。
1. 緩衝區是乙個堆疊。
2.第一步:將以下“i--”8處理到緩衝區中,i=7。 緩衝區:8<-(指標)。
第 2 步:將“i++”7 處理到緩衝區中,i=8。 緩衝區:
78< - 第 3 步:處理“--i”。 8 進入緩衝區,i=7
緩衝區:878 第 4 步:處理“++i” 首先自增量 1,然後 8 進入緩衝區,i=8
緩衝區:8878
3.輸出緩衝區資料(堆疊規則):8878
此外,自遞增、自遞減,也可能與編譯器有關。
-
計算:從右到左,輸出到 Buffer。
1. 緩衝區是乙個堆疊。
2.第一步:將以下“i--”8處理到緩衝區中,i=7。 緩衝區:8<-(指標)。
第 2 步:將“i++”7 處理到緩衝區中,i=8。
緩衝區:7 8< - 第 3 步:處理“--i”。
8 進入緩衝區,i=7緩衝區:8 7 8 步驟 IV:
處理 “++i” 先增量 1,然後處理 8 進入緩衝區,i=8緩衝區:8878
3.輸出緩衝區資料(堆疊規則):8 8 7 8 此外,自增、自減,也可能與編譯器有關。
-
首先,你的這種用法應該是非法的,或者至少是非常不可取的。 由於算術運算子(如 + 和 - )不指定計算運算元的順序,因此可以首先在不同的編譯器上找到運算元或正確的運算元。 因此,建議不要使用這種不確定的公式。
這裡你首先找到左邊的運算元,也就是先找到++n表示式的值,因為它是字首自動增量,所以表示式(左運算元)的值是6,n也變為6然後找到右運算值,即表示式 n++; ,因為它是字尾自動增量,所以表示式的值是 6,所以第二個運算元的值是 6,所以結果是 36之後,n 變為 7
-
scanf 輸入 6[x=6], x>5 為 true,後繼無條件執行 x++[x=7],由於滿足上述條件,printf 輸出 7
scanf 輸入 4[x=4], x>5 不為 true,則無條件執行 x++[x=5],因為前面的條件不滿足,printf 輸出 5,執行 x--[x=4]。
因此,當輸入 6 時,我們得到輸出 7; 當您輸入 4 時,您將獲得輸出 5
-
輸入 6 時,滿足 if 語句,x+1,輸出 7,程式結束;
輸入 4 時,不滿足 if 語句,x+1,輸出 5,x-1,程式結束。
-
++前面表示變數先自遞增,然後執行方程,所以m=++i,先執行++i,i變為9,然後賦值給m;
最後,它意味著先計算方程,然後變數自增,所以先執行 n=j++,n 賦值給 10,然後 j 自增到 11
-
++,意思是先自加,再計算。
++之後,表示先計算,再自加。
所以,m=++i; 首先進行自加法,即 i=i+1; 我=9;
再手術,m=i; 公尺=9;
n=j++;先操作,即 n=j; n=10;
然後自加,即j=j+1; J=11;
結果是:i=9,j=11,m=9,n=10
-
有乙個簡單的記憶方法,++在前面,即先自我增加,i在最後,即自我增加後給值; 反之,i先來,即先給出i的值,最後給出++的值,即給出值後自增。
m=++i;i先自增,自增後為9,再給mn=j++9; 首先將 j 的值 10 給 n,然後自行增加它,j 變成 11,這樣你就得到了結果。
-
應避免使用自遞增或自遞減表示式作為函式引數,因為不同的編譯系統在計算時沒有統一的方法。 例如;
i=1;c=fun(i,++i);
從左到右計算時,c=fun(1,2);
如果從右到左計算,則為 c=fun(2,2);
這種問題不需要深入研究,但是在呼叫函式之前應該確定引數的值,然後再將函式作為引數呼叫。
-
第一段**:
我是先增加 i 的值,然後再使用它。
p=f(i,++i);就是先執行++i,再進行函式呼叫。 因為執行++i後,i的值變成了3,所以等價於p=f(3,3);
你可以在函式 f 中列印出 a 和 b 的值,你會發現 a 和 b 都是 3
第二段**:
i++ 是先用 i 的值,再把 i 的值加 1
所以它等價於先執行 p=f(2,2);
執行後,將 i 的值更改為 3答案應該是 0
我懷疑你老師的課件寫錯了,所以我建議你問他。
-
主要的自加自減法問題,你的記憶方面,給出乙個方法。
x++ 表示式的值從左到右看 x 的位置,此時 x 在 ++ 的左邊,沒有 ++,所以 x++ 表示式的值是 x 的值。
反之,++x,x在++的右邊,表示式的值是x+1的值,但無論哪種方式,只要執行完成,x的值就是+1
x--, x。
因此,當 6: if(6>5) 和輸出 74: if(4>5) 不滿足時,執行 x--,但此時 x 已經執行了 ++,所以 x 是 5 之前 --
x--表示式的值為 5
-
我以前不明白這個問題,但現在我會了。 不明白真的很煩人。 首先,i=8,m=++i,前面是+1,然後取值,然後是m=9,此時i是+1之後運算的結果,i=,n=j++
最後,是先取值,再取+1; 那麼n先的值是j+1之後的值,j=11
-
在表示式中,++和標題一樣,在變數前面,它是自增和減法,然後取變數值。 變數之後,先取變數的值,然後自增自減。
例如:j=i++; 這意味著 i 的值首先分配給 j,然後 i 是自遞增的。 這也是以下**的含義。 您可以使用此想法進行跟進。
-
i++ 和 ++i 在 C 語言中都是自動增量,但它們以不同的順序自增量。 ++i 表示 I 遞增 1 然後參與其他操作,而 i++ 表示 I 參與操作,i 的值遞增 1。
第四行被賦值 j, j=3,然後 i+1=4
第 5 行 printf 也被計算出來,認為執行了 i++ 操作 j=3,輸出為 i=4,然後計算出 i=i+1=5
在第 6 行中,i+1=5+1=6,然後 j=6
在第 7 行中,輸出 i+1=6+1=7,輸出 i=7J 不變或 6,第 6 行與第 1 行相同。
i- 1 一次輸出 6 個,j 也是 6,然後 i 減去 1 次 = 5;
最後兩行道理也是留給房東去思考的,其實printf最好不要把計算步驟放進去,很容易忽略。
如果您不明白,請詢問。
-
這真的是關於編譯器的。
以下是 VS2019 執行的結果:
下面是 clion 執行的結果:
Clion 的警告是 x++ 是沒用的,檢查後,它說 x++ 應該放在賦值操作之後,所以它應該放在賦值操作之後。
x = x +(i++)
x++;所以正確的結果應該是 6,3
-
結果取決於編譯器,不同的編譯器會有不同的結果,6,3
-
它應該是 b 7 3
x++ 是 4,i++ 是 3
4+3 是 7,應選擇 B
算術水平高於其他運算子
-
我們很樂意為您解答!
答案是5,3。
-
因為要看具體的編譯軟體,不同的便衣軟體都有自己的規則,使用者往往被蒙在鼓裡。 即使使用者自己了解某個變音符號軟體的操作規則,編寫的程式也缺乏可移植性和可讀性。 如果你在其他編譯軟體上編譯它,你會得到不同的結果,所以說像這樣模稜兩可的語句的最好方法是遠離它,把它分成兩個或多個語句。
-
(3*3+3*3)=18;
證明。
我的意思是我先自我加法,然後參與運算,--我先減法再參與運算;
i++ 表示 i 先參與運算,然後加自身,--i 表示 i 先參與運算,然後減去自身;
在整個方程(i++*i+i--*i)中,i在參與運算之前加了一次,然後又減去自身(++i,--i),所以i的值沒有變化,它仍然是3,運算後,i的值再加後減去(++i,--i),所以i的值仍然沒有變化, 並且仍然等於 3
所以計算結果是 3
操作完成後,i=3;
-
記住一句口頭禪:先增加,然後給予。
第乙個和最後乙個值是指操作員位置。
增加和充實是指首先要採取什麼行動。
示例:i++;
賦值後,運算元在後面,所以先進行賦值操作,進行自加。
在 VisualStudio 2013 中編寫和除錯 C 語言程式的步驟: 1.開啟 [檔案] - 新建 - 專案以開啟“新建專案”視窗。2. 在[模板]、[名稱]、[位置]和[解決方案名稱]中選擇[Visual C++] Win32控制台應用程式,可以根據需要填寫。 >>>More