在SCJP中有关赋值表达式的问题(50分)

  • 主题发起人 主题发起人 strongboy
  • 开始时间 开始时间
S

strongboy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做模拟题时有好几道题都是问合法的赋值表达示: char c =-1;
int i='1';
答案都给出它们是正确的,但应该有显示的类型转换编译才能通过呀!考试中到底算对还是错。
 
是c语言吗?
char 其实是 8位带符号整数,所以-1是对的
而'1'是 1 的ascii 码,它是char类型,char是8位带符号整数,当然给int赋值也不用转换
但是要注意,如果使用双引号:"1",就不正确了
 
第二个肯定是对的。
第一个估计要看编译器了。反正在VAJ中是不对的。
但我也看到其它的一些代码中有这样的用法。
 
后来又想了一下,并在VAJ中做了验证,Pipi的说法部分不正确。
首先char应该是不带符号的。它的取值范围应该是0-65535。因为java的char是支持unicode的,
所以与C中的char已经不同了。
又在VAJ中试验了一下:
char c=0;
char c=65535;
都是成立的。
而char c=-1;
char c=65536;
就会报错:不能将int类型转换成char。
 
SCJP是java? 我还以为是 c 呢
 
SCJP(Sun Certified Java Programmers)是以JDK1.3作为标准的吧?
 
后退
顶部