本文目錄一覽:
- 1、c語言題目 b=3 ; b=(++b)+(++b)+(++b); 輸出最終b=? 答案是16 具體怎麼算的?我怎麼算到…
- 2、c語言指針中*b=3與b=3有什麼區別
- 3、c語言 第七題 為什麼b是3
c語言題目 b=3 ; b=(++b)+(++b)+(++b); 輸出最終b=? 答案是16 具體怎麼算的?我怎麼算到…
計算b=(++b)+(++b)+(++b);時
第一步:計算第一個(++b)這點誰都不會錯;此時b=4;
第二步:計算第二個(++b)這點也沒有問題吧,此時b=5;
第三步:計算(++b)+(++b)將5代入,(++b)+(++b)=10;這點容易想不通,為什麼不是5+4呢?因為變量只有一個存儲單元,中間結果被覆蓋掉了。
第四步:之後的運算應該不是問題了吧……
程序是先運行了b=(++b)+(++b);這兒等號賦值語句執行前,a已經完成了兩次自加a的值為5,所以加了之後b=10;然後b=b+(++b);b自加變成6,所以b=10+6=16;
若有幫助
望採納!
c語言指針中*b=3與b=3有什麼區別
b指針的話,b=a肯定不對。要麼*b=a,要麼b=a,這兩種語法都正確,但是意義不同。前者將a的值賦值給指針b所在的地址,兩個值相互不影響。後者將a的地址賦值給指針b,a和b指向同一個內存地址,該地址的值如果有變化,a和*b同時會變化。
c語言 第七題 為什麼b是3
因為a++ –b這個條件是false,,false什麼都是false,所以後面的條件都不會判斷了,也就是說只執行了a++ –b。所以b=3
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/192592.html