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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

int[]arr={'A','1',2,3,4,5,'a'};数组这么定义,为什么没有错误?

18 个回复

正序浏览
litianji2016 发表于 2016-9-18 11:10
'A'是char类型,2是int类型,在你这么写的时候这个char类型自动向上转型了,变成了int,'A'==65的结果是true ...

谢谢  我再想想吧
回复 使用道具 举报
'A'是char类型,2是int类型,在你这么写的时候这个char类型自动向上转型了,变成了int,'A'==65的结果是true!你这个数组自动转型后是这样的int[] arr={65,49,2,3,4,5,97}
回复 使用道具 举报 1 0
一个int型转String类型 ,直接加一个+“”;
char转int型 ,是+0;
回复 使用道具 举报
有类型的提升
回复 使用道具 举报
taozhihui 发表于 2016-9-18 00:27
我感觉要报错的啊

试试就知道了
回复 使用道具 举报
我感觉要报错的啊
回复 使用道具 举报

存储数据也会提升类型?说的不是参与运算的时候吗?
回复 使用道具 举报
自动类型提升
回复 使用道具 举报
自动类型提升,byte char short 在运算和一些其他场景会自动类型提升为int,你这里存的是A字符的ASCII码表中的数值
回复 使用道具 举报
这里面是类型自动提升啊char类型提升为int型,如果你想知道一个char类型的码表值,加上0打印出来就可以了
回复 使用道具 举报
这里面是类型提升啊char类型提升为int型,如果你想知道一个char类型的码表值,加上0打印出来就可以了
回复 使用道具 举报
这里面是类型提升啊char类型提升为int型
回复 使用道具 举报
18088086590 发表于 2016-9-18 00:05
因为之前你的接收数组是int,里面的字符就回去找对应的码表值,如果你用char[ ] 接收,录入了整数,是识别不了 ...

这里5对应的位置就会用?表示
回复 使用道具 举报
因为之前你的接收数组是int,里面的字符就回去找对应的码表值,如果你用char[ ] 接收,录入了整数,是识别不了的

char[] arr={'A','1','2','3','4',5,'a'};//A 1 2 3 4  a
                for (char c: arr) {
                        System.out.print(c+" ");
回复 使用道具 举报
在码表中 2  , 3  , 4  , 5 都有对应的符号,所以会自动转换的
回复 使用道具 举报
18088086590 发表于 2016-9-17 23:50
这里的字符是对应码表值得,查一下码表就知道了,一般要记住'A','a'和'1'对应的码表值
public static void ma ...

赞,可是数组不是存储相同数据类型的吗,怎么字符和整型一块存了呢?
回复 使用道具 举报
哈哈哈,求回复,是否解决

nice
回复 使用道具 举报
这里的字符是对应码表值得,查一下码表就知道了,一般要记住'A','a'和'1'对应的码表值
public static void main(String[] args) {

                int[]arr={'A','1',2,3,4,5,'a'};
               
                for (int i : arr) {
                        System.out.print(i+" ");   //65 49 2 3 4 5 97
                       
                }
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马