A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

short s=1;s=s+1;有错吗?
short s=1;s+=1;有错吗?
我咋觉得都对呢?

3 个回复

正序浏览

hort i=i+1;右边是一个short类型的加上一个整型的1,结果右边的类型整体从short就变成了 int 类型 这个属于隐式转换数据类型,然而左边的变量 i 还是
short类型 如果就这样为i赋值,则在编译的时候会报错。如实要正确的编译成功只需在右侧进行short类型的强制转换 即可。
short i+=1;是先将“+=”右边的类型强制转换成左边的short类型后在进行运算,所以不需要强制转换,这就是二者之间的区别
回复 使用道具 举报
short s=1:short 短整型 2个字节,表达式中"1"为int类型,长度4个字节。会发生类型转换,占内存大的向占内存小的转换语法上需要强制转换如short s=(short)1:但这样可能会丢失部分造成错误,建议楼主看哈类型转换相关的内容。
回复 使用道具 举报
short s = 1; s =Convert.ToInt16( s + 1);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马