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](/uploads/image/z/14946430-22-0.jpg?t=short+i+%3D+0%3Bi+%3D+i+%2B+1%EF%BC%9B%E4%B8%BA%E4%BB%80%E4%B9%88%E9%94%99%3Fshort+data+%3D+0%3B%2F%2F%E8%BF%99%E4%B8%AA%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AF%B9%3F%E9%9A%BE%E9%81%931%E4%B8%8D%E6%98%AFint%E7%B1%BB%E5%9E%8B%E4%B9%88data+%3D+data+%2B+1%3B%2F%2F%E8%BF%99%E4%B8%AA%E9%94%99%2C%E6%88%91%E7%9F%A5%E9%81%93%E6%98%AF%E5%9B%A0%E4%B8%BAdata%2B1%E8%BF%94%E5%9B%9Eint%E7%B1%BB%E5%9E%8Bdata+%3D+data+%2B+data%3B%2F%2F%E8%BF%99%E4%B8%AA%E9%94%99%2C%E5%8E%9F%E5%9B%A0%E5%90%8C%E4%B8%8Adata+%2B%3D+1%3B%2F%2F%E8%BF%99%E4%B8%AA%E5%AF%B9%2C%E4%B8%BA%E4%BB%80%E4%B9%88%E5%91%A2%3F%E9%9A%BE%E9%81%931)
xRn@d|KfS6`RTIIqVbs_S\[ T!vlf;<{/:jl
ՐM/f֧i<)!x5bϤ3a!Y]Xf_ 0d´RɄ,9K"J,
`2:[S+9SA
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 这样写是对的,单目运算符+=,-= ...强制转换为长度短的类型.