舉個例子說一下表示式型別轉換中的一種:
public class test
}
問題是這兩個的輸出結果是什麼?為什麼會是那種輸出結果?
當看到時,大多數人會說結果不一樣,但是有的人會忽略為什麼不一樣,因為他們用編譯器執行了,結果不一樣
第乙個是字串和字元做鏈結,結果是乙個字串,新的字串和數值8做連線,結果還是字串。
第二個是字元和數字做連線,存在型別轉換,byte,short,char都會轉換為int值在進行計算,所以此時的字元和數字做連線,就是a所對應的ascii碼值與數字8相加,其結果是乙個int型別的值,然後是乙個int型別的值和乙個字串做拼接,結果就是乙個字串。
上面的解釋就是說明這兩個列印語句輸出結果為什麼會不同。
c 表示式 型別轉換
隱式型別轉換 1.混合算術運算中,最寬的型別為目標轉換型別 int x 2.32 2 被提公升為double型 2.賦值運算中,被賦值物件為目標轉換型別 int x 2.32 2 被提公升為double型後,相加為4.32 double再轉換為int,賦值給x,注意小數字直接捨去。3.函式呼叫引數中...
表示式轉換 中綴表示式轉換為字尾表示式
算術表示式有字首表示法 中綴表示法和字尾表示法等形式。日常使用的算術表示式是採用中綴表示法,即二元運算子位於兩個運算數中間。請設計程式將中綴表示式轉換為字尾表示式。輸入格式 輸入在一行中給出不含空格的中綴表示式,可包含 以及左右括號 表示式不超過20個字元。輸出格式 在一行中輸出轉換後的字尾表示式,...
表示式轉換
2 3 7 4 8 4 2 3 7 4 8 4 思路 a.若為 入棧 b.若為 則依次把棧中的的運算子加入字尾表示式中,直到出現 從棧中刪除 c.若為 除括號外的其他運算子,當其優先順序高於除 以外的棧頂運算子時,直接入棧。否則從棧頂開始,依次彈出比當前處理的運算子優先順序高和優先順序相等的運算子,...