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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaofushen 中级黑马   /  2016-3-20 21:06  /  748 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xiaofushen 于 2016-3-20 21:59 编辑

class TestArr1 {
        public static void main(String[] args) {
                int[] arr = {1,2,3,4,5};
                print(arr);
        }
        public static void print(int[] arr){
                for (int i = 0;i < 5 ;i++ ) {
                        System.out.print(arr + "\t");
                }
        }
}
//上面程序是没有问题的,但是把"\t"换成'\t'后输出就变成了1011121314
//不知道为什么会出现这样的结果?

点评

System.out.print(arr[i] + "\t");是这个,不知道为什么arr[i]没显示出来.  发表于 2016-3-20 22:01

10 个回复

倒序浏览
\t是个转义字符,代表制表符,在输出语句中用“”打印的时候能出现空格。
'\t'是个字符,char类型的,arr是数组类型变量,是一个引用数据类型,两者是不能直接运算的。
况且这个程序打印出来的不是数组中的元素,是在堆内存中实例的地址值,打印结果是哈希值。对于数组来说我们常用的操作是操作角标。
class ArrayTest1
{
        public static void main(String[] args)
        {
                int[] x = {1,2,3,4,5};
        print(x);
                 
    }
    public static void print(int[] arr)
        {
        for (int i = 0;i <arr.length ;i++ ) //arr.length是数组长度。
        System.out.println("arr["+i+"]="+arr[i]);//打印出来的是i角标对应的元素。
    }
   
}
回复 使用道具 举报
试了下好像是这样:
'\t'单独使用或者和String类型用+号相连时代表Tab
'\t'和数值类型用+号相连时代表一个char类型的值,转换成int型就是9,所以你的程序输出的是10(1+9),11,12,13,14
回复 使用道具 举报 1 0
huangkai521 发表于 2016-3-20 21:44
\t是个转义字符,代表制表符,在输出语句中用“”打印的时候能出现空格。
'\t'是个字符,char类型的,arr是 ...

谢谢回复.   System.out.print(arr + "\t");是这个,发帖子没显示出来,不过1011121314不是地址值啊
回复 使用道具 举报
不知为什么arr[i]的[i]总发不出来,上面实际上是System.out.print(arr[i] + "\t");
回复 使用道具 举报
妄想年少轻狂 发表于 2016-3-20 21:49
试了下好像是这样:
'\t'单独使用或者和String类型用+号相连时代表Tab
'\t'和数值类型用+号相连时代表一个ch ...

谢谢解答.确实,class Test1 {
        public static void main(String[] args) {
                System.out.println((int)('\t'));
        }
}
输出结果是9
回复 使用道具 举报
xiaofushen 发表于 2016-3-20 22:03
谢谢回复.   System.out.print(arr + "\t");是这个,发帖子没显示出来,不过1011121314不是地址值啊 ...

'\t'是转义字符tab,在ascii表中对应的值是9,所以会出现数组中的元素和9相加。
回复 使用道具 举报
学习啦,谢谢大神
回复 使用道具 举报
huangkai521 发表于 2016-3-20 22:10
'\t'是转义字符tab,在ascii表中对应的值是9,所以会出现数组中的元素和9相加。 ...

知道了,谢谢解答,问题终于解决了.
回复 使用道具 举报
妄想年少轻狂 发表于 2016-3-20 21:49
试了下好像是这样:
'\t'单独使用或者和String类型用+号相连时代表Tab
'\t'和数值类型用+号相连时代表一个ch ...

正解。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马