C 語言中自增自減的副作用

發布 科技 2024-02-08
27個回答
  1. 匿名使用者2024-02-05

    自增自減有兩種,一種是前降(++i,--i),一種是字尾(i++,i--)兩者有很大的區別,字首自增自減是先跑自己,再跑別人。 字尾是自遞增和自遞減,即在執行本身中先執行另乙個。

    舉兩個例子:

    a=1;a=(a++)a)

    最終 a 的結果是 4;

    分析,第乙個 a++ 是不先執行自身的單詞,結果是 1後者 ++a 是先執行自身加加號,因此結果是 2在結果的末尾,必須有乙個自加法,所以結果是 4

    a=1;a=(++a)+(a++)

    最終結果是5;

    分析,第乙個++a是執行本身的自加法,所以a=2後乙個 a++ 中 a 的值是 2,所以加法的結果是 4,結果的結果最後必須有乙個自身的自加法,所以結果是 5

    a=1;a=(a++)a)+(a++)

    其結果是 :7; 分析,第乙個 A++ 也是乙個不自行執行的自加法,結果為 1第二個 ++a 是執行自己的自加法,所以結果是 2第三個a++,由於第二個自加法的影響,a本身的值也變為2。

    在執行結果結束時,由於有兩個自新增劑,因此最終結果為 7

    相信通過以上三個例子,大家對這個自增自減,對這個自減法則和自加法是一樣的,就不舉例了。

  2. 匿名使用者2024-02-04

    ??***???

    只要注意用法。 什麼***。

  3. 匿名使用者2024-02-03

    沒有必要糾纏於這種問題。

    如果是 q=(++j)+(j); 結果是 7+7=14 連續加法,正常邏輯應該是 3*8=24,但實際上因為編譯器的優化,將連續加法拆分為兩個暫存器操作,相當於:

    int edx = (+j)+(j);

    q = edx + j);

    這使得 7+7+8=22

    這是乙個優化問題,您不必糾結於此。

    這是實際的操作模式,如果你了解了組裝,你就可以理解它。

  4. 匿名使用者2024-02-02

    ++i 和 i++ 的區別在於 i 增加了 1,但 ++i 和 i++ 在計算過程中保持不變 值得在計算過程中進行更改 再做一次就好了。

  5. 匿名使用者2024-02-01

    C語言的pre-++和post-++稱為自遞增運算元,pre-和post--稱為自遞減運算子,下面介紹一下自遞增運算子的區別,類似於自遞減。

    如果將 autoincrement 運算子編寫為單個語句,則兩者之間沒有區別 ++i; 和 i++; 兩者都由 i+1 分配給 i,但如果將自動增量運算子寫入另乙個表示式,則兩者有很大不同,例如,i=5;

    j=i++;

    執行後,i 為 6,j 為 5

    i=5;j=++i;

    執行後,i 為 6,j 為 6

  6. 匿名使用者2024-01-31

    在完整表示式中使用自遞增或自遞減由***決定。 也就是說,C語言並不能保證p=(i++)i++)i++)的執行順序和三個i++的執行順序,不一定非要從左到右分別執行三個i++,而是可以跳過執行,比如q中的三個++j不是從左到右執行的。但是,c 保證在乙個完整的表示式中,p 和 q 的 i 和 j 遞增 3 倍,即最後的 i 和 j 都是 8,但不能保證 p 和 q 的值。

    因此,應避免在程式中使用類似的關聯自遞增和自遞減表示式,以避免不可預知的結果。

  7. 匿名使用者2024-01-30

    這個結果和編譯器有關,沒有多大意義,程式設計時應盡量避免。

  8. 匿名使用者2024-01-29

    看看這個**。 P 的結果是 14,按照我們的計算應該是 13,但是編譯器認為 () 中的優先順序在編譯過程中是一樣的,它們都是先自增的,所以編譯器先計算兩個自增量,然後是 7+7。

    而下面是一樣的,前兩個也是同時完成的。 後者是 7+7+8,最後乙個是 22(我之前問過,老師用彙編給我解釋過)。

  9. 匿名使用者2024-01-28

    加起來,我為什麼數 21

  10. 匿名使用者2024-01-27

    A+++4 等價於 (A++)4 從左到右盡可能多的提取運算子。

    首先,要理解自增自減的含義,其功能是在變數中加乙個,不受字首或字尾的影響。

    a++)4=7 a=4

  11. 匿名使用者2024-01-26

    C語言的pre-++和post-++稱為pre-increment運算子,post--稱為自遞減運算元,下面由self-increment運算子的區別介紹,類似於自遞減運算元。

    如果將 autoincrement 運算子編寫為單個語句,則兩者之間沒有區別 ++i; 和 i++; 兩者都由 i+1 分配給 i,但如果將自動增量運算子寫入另乙個表示式,則兩者有很大不同,例如,i=5;

    j=i++;

    執行後,i 為 6,j 為 5

    i=5;j=++i;

    執行後,i 為 6,j 為 6

  12. 匿名使用者2024-01-25

    ++A 是第乙個自加再運算,A++ 是第乙個運算後自加,--也類似。

    A+++4 這類問題容易混淆,對於一些操作規則,不同的編譯系統有不同的規定,不建議房東使用。

    如果是分配問題,只需使用程式執行它,看看結果是什麼。

  13. 匿名使用者2024-01-24

    int a[3];

    for(i=0;i<3;) scanf("%d",a[i++]

    更正 int a[3];

    for(i=0;i<3;) scanf("%d",a[++i]);

    下標越界。 for(i=0;i<3;) scanf("%d",a[i++]

    相當for(i=0; i<3;也就是說,回來。

    for(i=0;i<3;i++)scanf("%d",a[i]);

    和 for(i=0; i<3;) scanf("%d",a[++i]);

    相當for(i=0; i<3;)

    所以下乙個答案是越界的。

  14. 匿名使用者2024-01-23

    字首加法或減法與字尾加法或減法之間的差值是表示式中的值。

    在表示式中,應先遞增字首,然後再使用。

    在表示式中,字首首先自減法,然後再使用。

    在表示式中,字尾加號應首先使用原始值。 表示式輸出後,它是自遞增的。

    在表示式中,應首先使用原始值作為字尾減去。 表示式出來後,自減法。

    a=++i;字首應首先自遞增,然後再使用。 執行:i=i+1; a=i ; i=7; a=7;)

    b=i++;字尾 plus 應首先使用原始值。 表示式輸出後,它是自遞增的。 執行 b=i; i++;b=7;i=8)

    a=--i;字首縮減應首先進行自我縮減,然後再使用。 i=i-1; a=i; (i=7;a=7)

    b=i--;字尾減號首先使用原始值,執行。 b=; (b=7; i=6)

    printf("%d", -i++) 字尾加號,以首先使用原始值。表示式輸出後,它是自遞增的。 列印 -i; (6)產生表示式i=i+1; (i=7)

    printf("i=%d",i);列印 i=7

  15. 匿名使用者2024-01-22

    我是在 VC6·0 上寫的,這是一張截圖。

    首先,前兩個 7 因為 i++ 是先賦加 1 的,++i 是先加 1 再賦值運算,所以儲存在 a、b 中的值是 7,i 的值是 8

    然後是接下來的兩個 7,同樣的方式 a 是 7,b 是 7,在這種情況下我是 6,在 -i++ 中,因為 ++ 在後面,所以首先輸出 -6,然後將 i 加到 1,即 i 變成 7

    最後,根據輸出格式,輸出 i=7

  16. 匿名使用者2024-01-21

    第一行 i 是 6,a 和 b 是垃圾值。

    第二行 A 將 i 的副本分配給自增量,a 是 7,i 是 7,b 是 i 的副本,b 是 7,然後 i 是自增量,i 是 8

    列印出 a 是 7 b 是 7 此時 i 是 8,然後在 i 自減後給 a 乙份副本,即 7,此時 i 是 7,b 得到乙份 i 是 7,i 簡化為 6。

    再次列印,A 為 7,B 為 7,i 為 6

    首先根據優先順序 I++,然後,如果 i++ 表示式的值是 i 的副本,則它是 6,然後減去表示式是 -6。 這個 -6 傳遞給 printf,-6 被列印出來,i 也是自減法,此時 i 是 5。

    再列印一次,我是 5。

  17. 匿名使用者2024-01-20

    b = a++;首先將 a 的值分配給 b,然後在 a 的值上加 1。 b = 10,a = 11

    b = a--;首先將 a 的值賦給 b,然後將 a 的值減去 1。 b = 11,a = 10

    第乙個是 10,第二個是 11

    b = ++a;將 a 的值加 1 並將其分配給 b

    b = --a;將 a 的值減去 1 並將其分配給 b

  18. 匿名使用者2024-01-19

    例如:i=1; i++;這意味著當我在原始基礎上執行到“i++”時,它本身會加 1,但會加“i++”。"i 的值不變,i 的值變為 2; 而在“++i",“+i。"跟"i"等於 2,當“+”替換為“—”時,...

  19. 匿名使用者2024-01-18

    是 ++ 的運算子,例如 a++ 等價於 a = a + 1;這和,--簡化是一樣的,自增自減分為介詞和後置詞,區別在於介詞先是自減法後運算,後者是先運算後自約等。

    int a = 5;

    int b = a++;

    此時 b = 5;

    和 int a = 5;

    int b = ++a;

    此時 b = 6;

    自己了解一下,它的實際習慣可以簡化很多**。

  20. 匿名使用者2024-01-17

    假設您定義了乙個整數變數。

    int a=0;

    a++;即每執行一次,a增加1,即a=a+1執行一次; 自我還原是類似的。

  21. 匿名使用者2024-01-16

    它是乙個帶有字首 (i) 和字尾 (i) 的算術運算子。 前者是指將值賦值給 x,然後加 1,例如 i 2;x i,則 x 的值為 2,i 的值為 3。 後者意味著先加 1,然後分配給 x,例如 i 2;x i,則 x 的值為 3,i 的值為 3。

  22. 匿名使用者2024-01-15

    你不明白,自增是加一,自減是減一。

    a 是指 a + 1 的值,並在運算中的值上加 1。

    A++ 是先參與操作,結束後再加 1

  23. 匿名使用者2024-01-14

    i++ 表示先取 i 的值,然後 i 遞增 1,即如果再取乙個 m=i,那麼 i++ 的值仍然等於 m,但 i 的實際值是 m+1。

    i 表示先進行自動增量,然後提取 i 的值,即 ++i 等於 m+1,i 也等於 m+1

    自我還原也是如此。

  24. 匿名使用者2024-01-13

    i++ 是 i=i+1

    i++ 是 i=i+1

    其他--iah++iah,你不需要區分每個編譯器操作是不同的,也不能簡單地把它放到程式裡計算。

    但是如果你只看邏輯,它就是-- 第乙個是減去1然後計算,第二個是先計算,然後加1

  25. 匿名使用者2024-01-12

    “++在前面表示先自增後再賦值,後++表示自增後,先賦值。

    - “以同樣的方式,

  26. 匿名使用者2024-01-11

    再看一些例子。

    例如,i++ 和 ++i;

    單獨用作語句時沒有區別。

    與其他語句(如賦值、輸出等)結合使用時。

    例如,int a = i++ 表示 i 的值先賦給 a,然後 i 加 int a = ++i 是先加 i,然後 i 的值加

  27. 匿名使用者2024-01-10

    自增自減的規則是一樣的,它們都分為兩種型別:前位和后位。

    先例是++i(或--i),這是第乙個運算,即i乘以1的第乙個增量,第二個運算是i的後續運算。

    例如:i=1, y=++i

    那麼 i 是乙個預增量運算,所以 i 先遞增 1,i=2,然後對 i 的運算是取 i 的值並將其賦值給 y,然後 y=2。

    後驗是 i++(或 i--),是第乙個運算,即 i 的運算,後乙個運算,即 i 的自增量。

    例如:i=1, y=++i

    那麼 i 是後驗自動增量運算,所以第乙個運算是取 i 的值並賦值給 y,然後 y=1,然後自動遞增 1 for i,i=2。

相關回答
15個回答2024-02-08

為了驅動數碼單鏡反光機鏡頭的對焦和變焦,需要具有強大扭矩的機械電機結構 >>>More

9個回答2024-02-08

iOS(以前稱為iPhoneOS)是蘋果公司為iPhone開發的作業系統。 它適用於 iPhone、iPod Touch 和 iPad。 就像它所基於的 Mac OS X 作業系統一樣,它也基於達爾文。 >>>More

12個回答2024-02-08

這要看你怎麼處理,在你自己的處境之間一直很被動,幸好你的男朋友對你很好,那你就要好好珍惜,為了他你也要改脾氣,為了你的幸福,你要改變自己,讓他的父母改變對你的看法,試著讓他們接納你, 畢竟,為愛情付出一定的努力是值得的,希望你能幸福,也希望世上會有戀人最終結為夫妻!

9個回答2024-02-08

以下是管理員工的方法: 作為領導者以身作則。 要想管理好員工,領導者首先要樹立乙個好榜樣,這樣才能在管理員工時具有權威性和說服力。 >>>More

4個回答2024-02-08

1.培養獨立思考的能力。

我喜歡讀書,我經常和朋友討論書中的內容,宿舍裡還有乙個女生喜歡讀書,經常問我一些問題,過了很久,我發現她讀書有點死板,怎麼說呢,就是她很容易接受書中的觀點或想法, 當她讀了兩本書時,內容有點矛盾,會變得不知所措。假設她讀了兩本關於健康飲食的書,一本說飯前吃水果是健康的,另一本說飯後吃水果可以保持健康。 她會一直想,飯前吃水果好還是飯後吃水果好? >>>More