黑马程序员技术交流社区

标题: 数组问题 [打印本页]

作者: 吃阁子的猫    时间: 2013-8-28 09:43
标题: 数组问题
本帖最后由 吃阁子的猫 于 2013-9-2 22:18 编辑

int[]y,x[]
x[0][0] = y[0];   //答案是什么,为什么呢?
x[0] = y[0] ;    //答案是什么,为什么呢?
二维数组犯晕,求解析

作者: yxz    时间: 2013-8-28 10:37
我也还在看教程,如果理解有误请指正。
int[] y,x[]
//数组不能这样创建的,假如你要创建数组y,二维数组x
x[0][0] = y[0];
//没有初始化的数组内容都是0,这一步没意义
x[0] = y[0];
//x[0]存放指向数组的指针,不能指向具体的数,可以写成x[0]=y;
//
作者: 吃阁子的猫    时间: 2013-8-28 12:49
yxz 发表于 2013-8-28 10:37
我也还在看教程,如果理解有误请指正。
int[] y,x[]
//数组不能这样创建的,假如你要创建数组y,二维数组x

呵呵,其实y是一个以为数组,x是一个二维数组,前面的int[]是做声明用的,即等于int[] y 和 int[] x[]
作者: 肖博    时间: 2013-8-28 14:46
int[]y,x[]
可分解为int[]y   int[] x [];  
若已经初始化
x[0][0] = y[0];就是将y数组的第一个赋值给二维数组(x)第一个数组的第一个值。
可以编译运行。
x[0] = y[0]
将y数组的第一个赋值给二维数组(x)数组的数组长度.  
数组长度一旦初始化,就确定了
x[0][0]  第一个0 代表数组有几个一位数组,第二0个代表数组长度
作者: yxz    时间: 2013-8-28 15:06
吃阁子的猫 发表于 2013-8-28 12:49
呵呵,其实y是一个以为数组,x是一个二维数组,前面的int[]是做声明用的,即等于int[] y 和 int[] x[] ...

我也想过这个问题,不过因为数组如果不赋值就无法确定长度,这样声明的x和y相当于只是被标记为数组,但是没有指向内存地址。不能进行任何计算啊?
作者: 吃阁子的猫    时间: 2013-8-28 21:50
肖博 发表于 2013-8-28 14:46
int[]y,x[]
可分解为int[]y   int[] x [];  
若已经初始化

值为什么可以赋给变量呢,值不是只能赋给变量吗?还有第二个是可以编译运行的吗?
作者: 吃阁子的猫    时间: 2013-8-28 21:54
yxz 发表于 2013-8-28 15:06
我也想过这个问题,不过因为数组如果不赋值就无法确定长度,这样声明的x和y相当于只是被标记为数组,但是 ...

这个...只是声明,没有计算吧,有点晕
作者: 泡沫之夏    时间: 2013-8-30 01:22
int[]y,x[]的意思是一个一位数组int[] y和二位数组int[][] x  ,    x[0][0] = y[0]; 是正确的, x[0] = y[0] ;是错误的
作者: 肖博    时间: 2013-8-31 15:53
x[0][0] = y[0];
因为已经将 数组x长度 确定为 0 ,y的长度也是零  可以传入
x[0] = y[0] ;  
数组 x  的 长度为零   数组 y  的长度也为0,但是数组x为二维数组,格式错误,需要确定 是第几个数组  即x[a][]
作者: 黄文伯    时间: 2013-9-2 21:56
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
作者: 吃阁子的猫    时间: 2013-9-2 22:17
黄文伯 发表于 2013-9-2 21:56
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~ ...

嗯嗯嗯好的
作者: 陶智第    时间: 2013-9-2 22:30
第一行让我们知道y是一个一维数组,x是一个二维数组
作者: 吃阁子的猫    时间: 2013-9-2 22:55
陶智第 发表于 2013-9-2 22:30
第一行让我们知道y是一个一维数组,x是一个二维数组

恩恩,对了

作者: 天下    时间: 2013-9-2 22:57
怎么还在纠结这个问题:int[]y,x[]
分析:y 为一维数组,x为二维数组
x[0][0]=y[0]         是可以的,一维数组的元素值赋给二维数组0角标位置中的一维0角标元素
x[0]=y[0]              不可以的,x[0]表示0角标位的数组,而y[0]表示一维中0角标元素

作者: 吃阁子的猫    时间: 2013-9-2 23:41
天下 发表于 2013-9-2 22:57
怎么还在纠结这个问题:int[]y,x[]
分析:y 为一维数组,x为二维数组
x[0][0]=y[0]         是可以的,一维 ...

恩恩好的谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2