为什么 int k=1+'a'是合法的?不应该不带单引号吗?
凑三十个字符:请帮我答疑解惑一下吧唧唧歪歪扭扭捏捏的时候发货呢
首先明确几个概念,字符型变量(char)也是以整型进行存储,只不过范围比int稍小,你去查定义的时候给出的是一个整数范围,而不是从哪个字符到哪个字符。
只不过单个的字符都会和整数值有个对应关系,可以去查一下ASCII码表。
所以既然是整数,那么就可以直接进行加减运算,就和两个整数直接运算是一样的。在计算时会用这个字符对应的数字进行运算,不加单引号是不合法的,除非你预先定义了一个变量为a,否则使用一个字符的字面常量必须使用单引号。
解决请采纳,未解决请追问~
'a'表示是一个字符a,字符到整型之间能够转化,在编译时,会自动把'a'转化成字符所表示的unicode码(或ascii码)数值是97
int k=1+a 不带单引号的话,a就是变量,你得在这条语句之前定义他,且初始化,就是int a= 0;
int k=1+'a' 带了单引号,K是整形,java会将字符a转化为整数97,进行运算,就是k=98
单引号标识字符而不是变量
经测试,带了单引号,java会将字符a转化为整数97,进行运算,就是k=98