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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 07:31:09

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 这样写是对的,单目运算符+=,-= ...强制转换为长度短的类型.