无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

short s1 = 1; s1 = s1 + 1;有錯(cuò)嗎?short s1 = 1; s1 += 1;有錯(cuò)嗎?

2022-06-27 11:25 作者:網(wǎng)星軟件  | 我要投稿

先說一下Java的基本數(shù)據(jù)類型轉(zhuǎn)換規(guī)則,大的數(shù)據(jù)類型轉(zhuǎn)換為小的數(shù)據(jù)類型需要強(qiáng)制轉(zhuǎn)換,反之可以自動轉(zhuǎn)換。

賦值表達(dá)式等號兩側(cè)的轉(zhuǎn)換的規(guī)則是右側(cè)的向左側(cè)的看齊,即右側(cè)表達(dá)式要轉(zhuǎn)換到和左邊的類型一樣。

那么short s1 = 1; s1 = s1 + 1;的運(yùn)行就是錯(cuò)的。因?yàn)閟1 + 1中,s1是short類型,1是int型,s1會自動轉(zhuǎn)換為int型的1,與1相加后,得到int型的2,然后要向左側(cè)的short類型的s1看齊,即需要通過強(qiáng)制類型轉(zhuǎn)換將int型的結(jié)果轉(zhuǎn)換成short型才賦值給s1。正確寫法是:s1 = (short) (s1 + 1);。

接著short s1 = 1; s1 += 1;的運(yùn)行是正確的。因?yàn)閳?zhí)行s1+=1時(shí),其實(shí)執(zhí)行的是s1 = (short) (s1 + 1); 其中會有一個(gè)隱藏起來的強(qiáng)制轉(zhuǎn)換的過程,所以是運(yùn)行正確的。

最后short s1=1,s2=1;short s3=s1+s2;的運(yùn)行就是錯(cuò)的。這里是編譯器從數(shù)據(jù)安全方面考慮,如果s1和s2都是較大的short類型數(shù)據(jù)值,那么它們加起來就會超出short型的取值范圍,可能會導(dǎo)致溢出,所以會要求將short型強(qiáng)制轉(zhuǎn)換到int型。正確寫法是:short s3 = (int)s1 + s2;。

short s1 = 1; s1 = s1 + 1;有錯(cuò)嗎?short s1 = 1; s1 += 1;有錯(cuò)嗎?的評論 (共 條)

分享到微博請遵守國家法律
凭祥市| 南通市| 寻甸| 黄冈市| 繁峙县| 独山县| 石河子市| 新乡县| 罗城| 孟津县| 墨竹工卡县| 翁源县| 措勤县| 军事| 兴安盟| 上栗县| 大余县| 西林县| 安多县| 城固县| 广西| 吐鲁番市| 仙游县| 颍上县| 上栗县| 双桥区| 阳东县| 云梦县| 墨竹工卡县| 桦川县| 东至县| 乌兰察布市| 忻州市| 西青区| 镇巴县| 台中市| 德昌县| 衡山县| 盱眙县| 隆林| 西乌|