请问 多维数组如何赋值
int a[3][4][5];
请问C语言的前辈们
数组a中的元素个数是不是60个呢?
我是这样算出来的
这个多维数组是 12一维数组的集合 这个1维数组的元素有5个 12x5=60
最后一个参数是在一行当中确定一个,第二参数是在很多行当中确定一行,第一个参数是在很多页当中确定一页,为了确定某个元素,你必须先确定它在哪一页上,每一页都是4行5列的矩阵,用0 ,1 ,2确定是哪一页,确定了哪一页之后,确定是在这一页的哪一行上,每行都有5个数据,用0,1,2,3确定是哪一行,确定了哪一行,再确定是这行上的哪一个,用0,1,2,3,4确定具体是哪一位
是60个。赋值方式:引所从0开始。第一个引所从0-2,第二个0-3,第三个0-4
a[0][0][0]----a[2][3][4]
确实是60个,赋值的方式例如a[i][x][n],首先是i=0,x=0,n从0-n-1,为赋值了a[0][0]的数组的之后的第三维的数组就是n从0-n-1,之后会是a[0][1]...依次当x=x-1,n=n-1
这说明a[0]已经满了,之后在赋值就会是a[1]...在循环上边的步骤
是60个,用三个for循环语句进行赋值应该是可以的
for(int i = 0 ; i < 3 ; i++)
for(int j = 0 ; j <4 ; j++)
for(int k = 0 ; k < 5 ; k++)
a[i][j][k] = value;
确如楼上所言,最多可存放60个有意义的整形元素值。
但是你的计算方式感觉略有不妥。
a[3][4][5]中的每一个数字,都代表了一个指向,而越前面的数字指向越“有意义”。为什么这么说呢?
后面的数字依赖于前面的数字(指向),比如a[x][y][1]的的可能值所在的集合,就比a[1][x][y]的可能值所在集合更为混乱。
3代表的是行,数组a有三行(当然,3页也可以);
4代表的是(行确定下的)列(或者页下的行);
5代表的是(列确定下的)列内空间(或者行下的页)。
所以计算方法是:a[3][4][5]可以看成是4*5个一维数组,每个一维数组有3个元素,或者5个二维数组,每个二维数组有3*4=12个元素。