早教吧作业答案频道 -->数学-->
shorta=3;shortb=4;shortc=a+b;//报错shortd=3+4;//没错这是为什么?同样是3+4,为什么用变量相加就会报错,而直接用数字相加就没错呢?
题目详情
short a=3; short b=4; short c=a+b;//报错 short d=3+4;//没错 这是为什么?
同样是3+4,为什么用变量相加就会报错,而直接用数字相加就没错呢?
同样是3+4,为什么用变量相加就会报错,而直接用数字相加就没错呢?
▼优质解答
答案和解析
我来为你解答这个问题,java中只有int的值超出范围时,才会从头开始计数,就比如 int i=2147483647时,是int的最大值.
;i=i+1;这时int就会超出范围,它就会从-2147483648开始,从最小的又开.但是其他类型不是这样的,就像short类型它默认不是这样的,它如果超出范围就会报错.你这里的short c=a+b,因为a是变量,b是变量,它不能确定变量是不是超出short的范围,就报错了,short d=3+4是两个具体的数值相加,它能判断出3和4都在short的范围内,自然不会报错.
;i=i+1;这时int就会超出范围,它就会从-2147483648开始,从最小的又开.但是其他类型不是这样的,就像short类型它默认不是这样的,它如果超出范围就会报错.你这里的short c=a+b,因为a是变量,b是变量,它不能确定变量是不是超出short的范围,就报错了,short d=3+4是两个具体的数值相加,它能判断出3和4都在short的范围内,自然不会报错.
看了 shorta=3;short...的网友还看了以下:
C语言求助求详细解释~谢谢~已知大写字母A的ASCII码为65,a的ASCII码为97,下列不能把 2020-06-09 …
C语言求助已知大写字母A的ASCII码为65,a的ASCII码为97,下列不能把c中的大写字母转换 2020-06-09 …
VF下列修改数据表的操作中,可能使数据丢失的是什么下列修改数据表的操作中,可能使数据丢失的是()A 2020-06-23 …
为什么不选A,我知道D是错的,A是数字,标识符开头不能是数字的呀。以下C语言用户标识符中,不合法的 2020-06-26 …
疆到底是形声字还是会意字?为什么在字典上查到疆是会意字,但是又有题目问疆的形旁是什么.有一道考研真 2020-07-04 …
下列关于金字塔的说法,错误的是:A金字塔是古代埃及国王的陵墓B金字塔是古代埃及国王权利的象征C金字 2020-07-24 …
在英汉两种语言中,英语是以什么为单位的,汉语是以什么为单位的.24.在英汉两种语言中,英语是以(D) 2020-11-05 …
在英汉两种语言中,英语是以什么为单位的,汉语是以什么为单位的.A.字,词B.字,字C.词,词D.词, 2020-11-05 …
逻辑门电路为什么不是卡诺图的逻辑相邻不能化简?如Y=abC+aBc+Abc+ABC.注:大写字母为“ 2020-12-23 …
英语根据发音选出不同的单词根据读音规则,选出不同的发音()A.(hand)B(cake)C(map) 2021-01-29 …