short i = 0;i = i + 1;为什么错?short data = 0;//这个为什么对?难道1不是int类型么data = data + 1;//这个错,我知道是因为data+1返回int类型data = data + data;//这个错,原因同上data += 1;//这个对,为什么呢?难道1

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/21 17:05:38
short i = 0;i = i + 1;为什么错?short data = 0;//这个为什么对?难道1不是int类型么data = data + 1;//这个错,我知道是因为data+1返回int类型data = data + data;//这个错,原因同上data += 1;//这个对,为什么呢?难道1
xRn@d|KfS6`RTIIqVbs_S\[ T!vlf;<{/:jl ՐM/f֧i<)!x5bϤ3a!Y]Xf_0d´RɄ,9K"J, `2:[S+9S A xT$q(7Jؒ/p]k/qJ6 .;ԸbgcBA1,θa.`.P}H8#bDŤɻ16ZKJNݯ>2O6|Ix| ]qB8Mle ㊩#ֳ]4Bʚ"1C| nA0S*Lfl8^yk;ARtnJ-3eחTU͝Ss k)Na_O?Y

short i = 0;i = i + 1;为什么错?short data = 0;//这个为什么对?难道1不是int类型么data = data + 1;//这个错,我知道是因为data+1返回int类型data = data + data;//这个错,原因同上data += 1;//这个对,为什么呢?难道1
short i = 0;i = i + 1;为什么错?
short data = 0;//这个为什么对?难道1不是int类型么
data = data + 1;//这个错,我知道是因为data+1返回int类型
data = data + data;//这个错,原因同上
data += 1;//这个对,为什么呢?难道1不是int么?
data += data;//这个对,为什么呢?

short i = 0;i = i + 1;为什么错?short data = 0;//这个为什么对?难道1不是int类型么data = data + 1;//这个错,我知道是因为data+1返回int类型data = data + data;//这个错,原因同上data += 1;//这个对,为什么呢?难道1
记住,short类型长度比int类性短,当short + int 时候默认结果是类型较长的一方也就是int 所以 i + 1 值是int类型,不能赋值给short类型,也就是说长的类型不能赋值给短的类型,除非强制转型(但这样会产生精度问题)
以下问题,都是上面知识点的衍生物.
还有,提示你:short i = 0;i += 1 这样写是对的,单目运算符+=,-= ...强制转换为长度短的类型.