關於兩個輸出結果不同的問題,java 為什麼下列兩個輸出結果不同

2022-12-24 18:17:01 字數 2692 閱讀 9229

1樓:淘汰之刃

第二個結果還可以理解,就是在vc下面後++是後到最後的,就是在一個表示式中要所有的計算全部結束之後,所以在那個表示式中,a的值都是10,到分號結束時a 的值才++了三次,變成了13,就出現了那樣的結果。

在看第一個。任何一個表示式都回產生一個臨時值(這個可以自己查書找到,而且比較重要),+雙目運算子需要兩個數才能完成計算。這個表示式都是前++,++a,此時a=11,然後+,但是他需要兩個數字才能完成運算,所以要等到+號後面的值計算完畢,又是++a,此時a =12。

這個a變成了,那麼前面的a因為和他是一個變數,所以也是12,這樣算木運算子+才得到了兩個數字,才能繼續計算下去。12+12得到24存在臨時變數中,然後再等到第二個+號後面的++a結束,得到13,這樣 臨時變數中的24和13相加,得到37,這是最後結果,在賦值給b,所以b的值才是16。

摟主第一個問題的現象很有意思,困擾了我好長時間,最好總算找到一種能夠解釋通的方案了

2樓:匿名使用者

我也執行了一下,好像是涉及到彙編上的問題,因為mov運算只能操作兩個數,所以,有重新取值的行動,++a先被執行,然後做雙目加法,成為24,然後++a被執行,a變成13,這時候從a的地址提出的a就是13,再把它和存放的結果24相加生成13。

j**a 為什麼下列兩個輸出結果不同

3樓:匿名使用者

這個是因為第一個輸出的是一個空陣列,也就是,而第二個是listiterator的物件,你對物件做輸出的時候會輸出物件的雜湊碼值。

求問一個關於c語言的問題,兩個程式輸出的結果是什麼,有什麼區別呢,

4樓:自我程式設計

上面說的「從右往左」是printf傳參順序。

是從最右邊-i--開始傳參。

但是處理++--的前置後置不一樣。

處理前置是等運算結束直接從i地址取值傳參(比如++i),處理後置是從臨時量地址中取值傳參(如i++)。

所以上圖**

printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);

步驟1:-i--,先將i的值放入臨時地址空間,i再--。臨時量(8),i值7。

步驟2:-i++,先將i的值放入臨時地址空間,i再++。臨時量(7),i值8。

步驟3:i--, 先將i的值放入臨時地址空間,i再--。臨時量(8),i值7。

步驟4:i++, 先將i的值放入臨時地址空間,i再++。臨時量(7),i值8。

步驟5:--i, i=i-1。i值7。

步驟6:++i, i=i+1,i值8。

步驟7:所有引數,後置取對應的臨時量,前置取i地址的值。

所以printf("%d\n%d\n%d\n%d\n%d\n%d\n",i地址值(8),i地址值(8),臨時量(7),臨時量(8),-臨時量(7),-臨時量(8));

所以列印:88

78-7-8

至於你**另一個**,就是按常規**順序。不細說了。

另外一個表示式出現多個同變數的自增自減,是會有變數未定義的警告的,但可以執行。

5樓:gta小雞

第一個程式屬於未定義行為,結果可能有很多種。

第二個程式每個printf結果是確定的,是可以用c語言標準推匯出來的

絕對不要寫出第一個程式這樣的**。

有以下程式,為什麼2個printf輸出的結果不一樣

關於c語言指標的問題,誰能告訴我這個程式的兩個輸出結果為什麼不一樣呢?

6樓:玻璃麥田

首先,兩個函式輸出的值肯定不一樣。因為是各自的區域性變數。

其次,程式本身寫的有問題。定義指標int*p,*q後,如果要操作的內容,先要給p,q賦合法的值(例如*p=&a),然後才能操作*p,*q。不然操作的p,q就是野指標,可能引起程式崩潰。

7樓:匿名使用者

te()裡面的a,p,是區域性變數,和main()裡的a,p,互不影響,所以輸出的值就不同嘍。

c++問題,兩個程式為什麼輸出結果回事不一樣的?

8樓:檢白凝枚葉

因為b是個指向char的指標

他所指的內容是1個位元組

也就是說

第一個*b的值為0xf7

第二個為0x07

但是你在輸出的時候要讓他擴充套件到4b,由於char長度不夠,所以他需要向左擴充套件,當最高位是1時,全部擴充套件1,

否則為0

所以,第一個結果就是fffffff7

因為f7的最高位是1,

實際上,只要從右邊數第二個數》=8,前六個數肯定是f,否則肯定是0比如a

=0xabcdef87

則輸出為ffffff87a=

0xabcdefa7

則輸出為ffffffa7a=

0xabcdef17

則輸出為00000017a=

0xabcdef77

則輸出為00000077

請問這兩個程式為什麼輸出的結果不同?

9樓:gta小雞

如果從2到i-1中的所有數都不能整除i,則輸出i為素數

從2到i-1中每當有一個數不能整除i,就輸出i為素數

你覺得哪個正確

關於MATLAB資料結果的輸出問題fprintf

唉,叫你把fopen和fclose放到迴圈外面,不回是fprintf 汗啊!答 fid fopen exp.txt w for i 1 length d for j 1 a imread d num2str d i num2str j tif if j 1 figure 1 bw roipoly a...

請教兩個關於翡翠飾品的問題,請教兩個關於翡翠飾品的問題。

用水或淘米水浸泡翡翠飾品的做法根本沒什麼科學依據。翡翠是硬玉,密度遠高於和田類軟玉。在拋光面完好的情況下,水是不可能浸入其內部。所以諸如此類的 補水 保養 都是無稽之談。正確的做法是遠離油汙和酸鹼類物質。有髒物隨時清洗,用軟布擦乾即可。不用刻意保養。至於手鐲箍到小臂的問題倒是需要注意。這種現象如果很...

兩個關於俄語發音的問題,關於俄語發音的問題

這類的前置詞和後面的片語成一個詞,比如 因為重音在後面的 上,所以肯定是發a音,但也有例外,就是著重強調的時候也可以發成o音。是單母音的單音節詞,肯定讀o音。在俄語中,諸如 這類的清子音本身發音就比英文的 t k p 的發音要重。比如 的發音就是相當於中文的爸爸,而不是帕帕。而對應的 的發音更濁化 ...