黑马程序员技术交流社区
标题: 新手一个关于一维数组和二维数组的小问题 [打印本页]
作者: iBadboy 时间: 2013-7-19 21:25
标题: 新手一个关于一维数组和二维数组的小问题
本帖最后由 iBadboy 于 2013-7-20 10:25 编辑
int[] x;int[][] y; 这样的两个数组,请问这里的x是指向什么?y是指向什么?y[]呢?关于视频中下面这些的对错,能再给我解释一下吗?
x[0] = y;
y[0] = x;
y[0][0]=x;
x[0][0]=y;
y[0][0]=x[0];
x=y;
作者: xscn 时间: 2013-7-19 21:37
int[] x;int[][] y; 这样的两个数组,请问这里的x是指向什么?y是指向什么?y[]呢?关于视频中下面这些的对错,能再给我解释一下吗?
x是指定义了一个int类型的一维数组,
y是指定义了一个int类型的二维数组,
x[0] = y;//把二维数组赋值给一维数组中的0角标元素,显然错的
y[0] = x;//把二维数组中角标0的一维数组赋值给一个一维数组,是可以的
y[0][0]=x;//把二维数组中的一个具体元素赋值给一维数组,错的
x[0][0]=y;//x不是二维数组,错的
y[0][0]=x[0];//二维数组中的元素赋值给一维数组中的元素,元素给元素赋值,可以的
x=y;//把一维数组赋值给二维数组,错的
作者: 白堇翎 时间: 2013-7-19 21:45
本帖最后由 白堇翎 于 2013-7-19 21:49 编辑
x和y指向的都是内存地址 内存地址中储存的是数组中的元素.
y指向的内存地址中储存的是其内部数组的内存地址
x[0] = y 错 y指向的是内存地址 不能赋值给x[0]
y[0] =x 对 指向的同样是内存地址
y[0][0]=x 错 x指向的是内存地址 y[0][0]指向的是元素 不能赋值
x[0][0]=y 错 x不是二维数组
y[0][0]=x[0] 对 指向的同样是元素
x=y 错 虽然都是指向地址 但是类型不同
作者: 清心玉质 时间: 2013-7-19 21:49
int[] x;int[][] y; x是指向一个一维数组;y是指向一个二维数组
x[0] = y;不对,x[0]代表一维数组的第一元素,不能把一个二维数组赋给一个一维数组的第一个元素
y[0] = x;正确 二维数组其实就两个一维数组组成的,这个其实就是把一个一维数组作为y的第一行
y[0][0]=x;,不对,y[0][0]是一个具体的元素,不能把一个数组赋给y的第一个元素
x[0][0]=y; 不对,答案同上一个
y[0][0]=x[0];可以,把一个值赋给另一个元素
x=y; 不对,不能把一个二维数组赋值给一维数组
作者: 月亮人生 时间: 2013-7-19 23:37
x指向了int类型的一维数组的首地址,
y指向了int类型的二维数组的首地址。、
y[]也指向了二维数组中的一维数组的地址。
x[0] = y;//x[0]里存的是元素,而y里存的是地址。错误。
y[0] = x;//将x存的一维数组的地址值赋给二维数组中的第一个一维数组。正确。
y[0][0]=x;//y[0][0]里存的是元素,而x存的是地址,错误。
x[0][0]=y;//x是一维数组。错误,
y[0][0]=x[0];将一维数组的第一个元素x[0]赋给二维数组中的第一个元素y[0]。正确
x=y;//x,y 存的都是地址值,但是x是一维数组,y是二维数组。类型不同。错误。
作者: iBadboy 时间: 2013-7-20 10:23
多谢,很详细
作者: iBadboy 时间: 2013-7-20 10:24
多谢多谢,很详细
作者: iBadboy 时间: 2013-7-20 10:24
多谢啦,明白啦
作者: iBadboy 时间: 2013-7-20 10:24
多谢多谢。。。
作者: 月亮人生 时间: 2013-7-20 10:44
互相学习。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |