c語言,為什麼 1不是 1而是,c語言,為什麼 1不是 1而是3?

2021-05-04 18:26:51 字數 1729 閱讀 6542

1樓:匿名使用者

int i=2; // i的初值為2;

int t = -i++; // 把 -i++的結果值賦值給t,然後我們來討論這個運算。

我們知道,-i++是先運算i++,然後再運算 -;

即,t = -i++; <==> t = -(i++);

我們先進行i++; i++;的結果就是,i=i+1;因為 i 的初始值為2; 所以,i++;之後,可以得到 i=3;

然後,我們就可以得到 t=-3;

我們這裡要得到的 i 值 , 而不是-i++;的最終執行結果 t; 因此,我們就可以得到 i的值為 3;

2樓:騎車到處逛

i的值是3,i 一開始是2,++之後就是3了.

表示式的值為負號和後面的表示式結合,後面表示式為i++因為i一開始是2,i++,這個個表示式的值是2,++i的值為3,。

兩種情況執行完++後i都是3

3樓:

因為i++裡面的++總是最後進行運算。對於-(i++),它(指編譯器)是這麼算的,首先i是2,所以這個表示式的值就為-2,最後再將i加1.理解「最後運算「的含義。

因為i++相當於是i = i + 1, 所以可以改變i的值。注意表示式的值和i的值是不一樣的。

到倒數第二步i並不是-2而是那個表示式作為一個整體的值為-2,i的值一直都是2直到執行了i++.

4樓:

i的初值為2,而—(i++)即,i先輸出再自加。所以得出—(i++)==—2;而i輸出後進行自加,則為i==2+1=3;

c語言問題,麻煩解釋下,為什麼答案算出來是1,3不是3,1啊?

5樓:匿名使用者

test1和test2的區別

bai 就在於 區域性變數

dux是否有static .

帶static 的變數,只初始化一次

zhi 下次進入函式的時dao候,x值是上回次退出的值。

而不答帶的,每次都是初始化值。

於是 test1每次進入,x都是0,然後自加為1,返回值始終為1,所以m值最終也就是1

test2每次進入,x是上次值,然後自加1.於是第一次調返回1,第二次調返回2,第三次返回3,最終m值為3.

6樓:匿名使用者

main()

printf("%d,%d\n",m,n);/*printf 後是du1,3*/

}test1()

test2()

為什麼在c語言程式中計算1.0/3.0*3結果不是1

7樓:匿名使用者

1.0/3.0在c語言中結果是0.3333333,那個3不是無窮的,是受限制的,所以乘以3後,不是1,而是0.9999999

8樓:

因為它先運算1.0/3.0,所的結果是以小數形式儲存的,有誤差

9樓:匿名使用者

#include "stdio.h"

main()

在tc下是1.000000

在vc++下也是同樣的結果。

最好自己驗證一下。

大家互相學習

10樓:匿名使用者

1/3等於0.3333… 拿0.33…*3結果不可能會得1呢?

C語言中abc1,abc1a是什麼c語言問題

a b時整個表示式為真 我的理解是 等價於a b或c 1 意思是 如果不是 a 你只寫這個放著想問什麼呀?都不寫清楚 a 先算a的邏輯值,在判斷c是否是0,如果是0,c為真,否則,c為假 再判斷 a 再判斷 a最後判斷整體 如果 a c 1 a 為假,整體值為真,否則為假 答案是0,過程如下 先算a...

c語言判斷a0b0,c語言中,a1,b1ifa0!b

不知道你要問什麼,但是我仍然可以告訴你這句話的意思!1,a,b肯定是在程式的某個地方定義的整形變數,他們代表的是任何整數,具體是多少,要看程式怎麼賦值了2,符號就是 等於的意思,注意c語言中只有一個等號的情況下,不是等於的意思,而是賦值3,是並且的意思 也就是說要這個符號前後的表示式全都是真的情況下...

c語言為什麼叫」C「語言,C語言為什麼叫做C語言而不叫A,B,D Z等語言

電腦的英文單詞是 computer啊 c語言就是指用語計算機的語言 ps 受教了.我沒到網上去查,一直就這麼理解的.就算錯也正常,我想也不離譜.總之和計算機擺脫不了關係 bs出口成髒的小人 這你應該問它的發明者。早期的程式語言 bcpl,取名為 b的語言,在此基礎上開發的語言就用bcpl的第二個字母...