應該輸出變數b等91,a 的值已經賦給b了b還是輸出90,a才輸出91!為什麼呢

2023-01-09 19:10:40 字數 2952 閱讀 8888

1樓:

a++:先運算再對a進行+1操作 運算時為+1之前的值++a:先對a進行+1操作再運算 運算時為+1後的值int a=90;

int b=a++;//在對b進行賦值的時候賦予的仍是a+1操作之前的值

所以給b賦值為90 即b=90

運算結束之後對a進行+1操作 此時a為+1操作之後的值 即a=91int a=90;

int b=++a;

如果這樣的話

輸出b=91

a=91

2樓:

a++和++a的區別:

int b = a++ 和int b = ++a 都可以看成一個模板int b = 表示式

當a=90時:

(a++)=90 (++a)=91

也就是a++ 裡的++不會影響當前表示式的計算,而是在表示式計算後會改變變數a的值

而++a裡的++會影響當前表示式的計算,並改變a的值簡單點說就是一個是先對a加1再參與運算,一個運算後再對a加1

3樓:匿名使用者

a++是先賦值再計算,也就是先把a=90複製給b然後再自加1,所以最後b=90,a=91

如果換成++a就是先進行自加運算,這個時候a=91,再進行賦值運算,把a=91賦值給b,這樣就可以使得b=91

4樓:匿名使用者

b = a++代表的意思是:系統先把a = 90賦值給b 然後再執行a++ 要是改寫成:b = ++a ;結果就會是:b = 91;a = 91了

5樓:匿名使用者

因為int b=a++;等價於 int b=a;a++;因此b輸出90,a才輸出91;

(關於b=++a;或b=a++;這型別問題時要看++是在a前還是後,如果++在a前面,那就要先執行a自加一然後在賦值給b;如果++在a後面,那就先把a的值賦給b,然後a再自加一)

6樓:風影之名

b=a++,這裡的自增操作符++放在a後面,是先把a的原值(也就是90)賦給b,然後a才自增的,自增之後a就是91了。

如果想讓b=91,可以寫成 b = ++a; ,這樣的話就是a先自增1(這時a=91),然後才給b賦值,這樣b就是91了

7樓:匿名使用者

樓主,你應該是沒有理解到a++的定義;

a++:表示的是後加,所謂後加是什麼意思呢,就是說,原來int a = 20,**執行到int b = a++;的時候,表示這句話執行完後,a變數本身才自動加1,那原來a變數是20,所以,int b = a++;這裡的b是20,int b = a++;這句話執行完後,a才開始自動加1,不知道我這樣說你明白沒有!

8樓:

a++,意思是先把a的值用於運算,然後a在自己加1;這個裡面b=a++,就是先把a的90賦值給b,然後a再自己加1,所以b是90,a變成了91。

9樓:匿名使用者

int b=a++;

的執行原理是先把a的值賦給b,然後自己在加1;

這裡如果是int b=++a; 那麼不的值就是 91了;

因為++a是先自加1然後再賦值;而a++是先賦值在紫加1;

這就是++a和a++的區別。

10樓:匿名使用者

你可以把a++想成是一個函式,其實它就是被編譯器解釋為一個函式大概像是 int ++(int a)之類的,關鍵就是a++,++a的函式是不一樣的

a++ 是 int ++ (int a)++a 是 int ++ (int a )應該很明顯就看出它們的不同了吧,jdk的源**肯定不是這樣子的,但是內容肯定是差不多的,

所以你用a++輸出,b肯定是90

11樓:匿名使用者

這個答案,應該是b為90,輸出的結果a為91,原因是b=a++,是先賦值給b了之後a再自增。

12樓:匿名使用者

這個就要區分++a和a++的區別了,如果是++a則先a自加一接著賦給b,而a++則是先賦給b後再自加1,所以說b還是90,而,a是91

13樓:渴求一杯藍山

你想錯了,下面是int b = a++;的執行過程1.b = a;(a=90,所以b=90)2.a=a+1(a++,這時候a=91);

執行完了 結果是a=91;b=90

如果你要讓b=91;

改成:int b=++a;

14樓:花卉網年宵花

你沒有理解自增的意思,a++的意思是先將a的值賦給b,a的值再自加1,所以b=90,a=91

15樓:匿名使用者

b=a++

實際上是b的值等於a++ 這個表示式的值

a++ a++的值為90 a的值為91++a ++a的值為91 a的值為91

16樓:

最終答案:a++是先運算再對a進行+1操作 所以b=a; a=a+1;

給分!!

17樓:匿名使用者

b=90 先進行賦值。。當時a=90,賦值完後a在+1 a=91

18樓:啊道

int b = ++a; //這樣改 就是你希望的結果了,或者這樣改

a++;

int b = a; // 這兩個例子希望你能看出什麼來. 謝謝!採納

19樓:布拉格天文鐘

運算子優先順序問題,先賦值,後自增

20樓:

int a=90;

int b=++a;

如果這樣的話

輸出b=91

a=91

反之,b=90

21樓:匿名使用者

a++是先將a賦值給b,a再自行加一,a++與++a的區別,網上有很多介紹

matlab中怎麼輸出變數的值,matlab中怎麼輸出一個變數的值?

回答我想到了 functionx myout a,b,c,d symsx symst x a cos b t c sin d t 你打下myout 試試 保證你滿意 答案 請教如何實現輸出的表示式中帶有命令,比如y normcdf x 請參考以下相關問題 請參考以下相關問題 matlab將一個函式表...

c 中將變數a輸出3位(不足位補0)cout如何輸出

include include using namespace std int main 用上面這個 即可。關於c 中cout實現輸出的填充,寬度,對齊 include using namespace std int main 使用cout.width 函式和cout.fill 函式把每個單元存放的...

信捷plc單按鈕控制不同的輸出x0變數分別5次輸入第

這個很簡單 用簡單的計數計 和比較指令 就能解決你的問題 信捷plc單按鈕控制5個不同的輸出 x0變數分別5次輸入 第一次y0輸出 第二次y0斷開y1輸出依次到第5次y4輸出 可以這樣 在plc程式中設定一個暫存器,用x0的上升沿做一個運算脈衝,運算公式暫存器加1操作。然後判斷這個暫存器中的數值是多...