C语言中二维数组如何降维使用
答案:2 悬赏:20 手机版
解决时间 2021-08-18 21:41
- 提问者网友:心如荒岛囚我终老
- 2021-08-17 21:34
要详细说明,举例。不要网上的摘抄。
最佳答案
- 五星知识达人网友:酒安江南
- 2021-08-17 23:13
以二维来说,假若给定的数组为a[3][5],这是一个二维数组,在C语言中,计算机在执行这个数组前,二维数组就是
a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]
a[1][0] a[1][1] a[1][2] a[1][3] a[1][4]
a[2][0] a[2][1] a[2][2] a[2][3] a[2][4]
不要看我将它排成3行,其实在计算机内部,它是在一行连续排列的,因此a[0]就代表a[0][0],a[1]代表a[0][1],a[4]代表a[0][4],a[5]代表a[1][0],怎么来不就是行号1*每行的元素个数+0=1*5+0=5;
a[2][2]代表的是2*5+2=12,所以代表a[12].解释清楚了吗?
理解了别忘了给我加分(选我)。
a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]
a[1][0] a[1][1] a[1][2] a[1][3] a[1][4]
a[2][0] a[2][1] a[2][2] a[2][3] a[2][4]
不要看我将它排成3行,其实在计算机内部,它是在一行连续排列的,因此a[0]就代表a[0][0],a[1]代表a[0][1],a[4]代表a[0][4],a[5]代表a[1][0],怎么来不就是行号1*每行的元素个数+0=1*5+0=5;
a[2][2]代表的是2*5+2=12,所以代表a[12].解释清楚了吗?
理解了别忘了给我加分(选我)。
全部回答
- 1楼网友:拜訪者
- 2021-08-18 00:42
因为在内存中,数据全部是线性排列,而所谓的多维,也是我们将数据抽象化显示出来而已。
针对多维数组降维处理,就是将抽象化的多维数组还原为现实的一维数组处理,关键处理点是地址的处理。
请看下面的例子:
#include <iostream.h>
int max(int arry[],int n) { int i,max=0; for (i=0;i<n;i++) { if (arry[i]>max) max=arry[i]; } return max; }
void main() { int a[3][4]={{1,35,65,3},{89,456,897,9},{564,8954,8965,656}}; cout << "the maxium number is : " << max(&a[0][0],12) << endl;
//降维处理的关键点: arry[]的实参数组首地址为二维数组的第一个元素地址,而不是采用行指针或列指针赋值,至此,降维的目的已经达到,我们可以根据这个array一维数组来访问二维数组a[3][4]中的任意元素。
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯