您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在?
数组,多维,语法为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在?
发布时间:2016-12-08加入收藏来源:互联网点击:
为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
你也太逗了,两个一维数组能代替二维数组?你连C语言的入门都没理解。打个最简单的比方: 一个班有30名学生,每个学生有,语文,数学,英语,物理,化学五科成绩,现在把所有学生成绩输入电脑,用二维数组是 int[30][5] ,你用你的两个一维录进去试试?
回答于 2019-09-11 08:43:50
一个a[m][n]的二维数组具有m x n个存储空间
而两个一维数组a[m],b[n]只有m + n个存储空间,怎么可以替代二维数组?二维数组只是C语言对数据的数学表达形式,实际存储空间还是一维的,但二维数组在使用时,编译器可以帮助我们完成下标到存储空间的位置的计算,便于使用。当然我们完全可以用一个一维数组代表N维数组,但下标位置就要我们自己手动计算了。
回答于 2019-09-11 08:43:50
到图形处理这类算法的时候,就会明白更多了。
我们常用的矩阵要存在二维数组里。
能想到的好处有两点:
存储空间的分配
这样可以获得连续存储的空间。
这样就能提高运算效率。
尤其在大规模或者频繁数据处理的时候。
寻址、做交换、读写存储,都会有效率提高。
指针的移动,使用二维数组也更方便。
做为复杂算法的参数
做图像处理,用到矩阵,向量运算等复杂逻辑的函数时,需要这种便利的符号作为输入参数。
图形处理的时候,基本就是矩阵运算,旋转、缩放、平移动,这三个基本运算用到矩阵。
把这些基本功能封装成函数,这些函数的输入参数,就是二维数组的入口指针。
所以还是有很多用处的,离不开二维数组
算法是抽象的,越抽象,越通用。
回答于 2019-09-11 08:43:50
怎么没用?那我问你,一个学校有10个班级,每个班级有40名同学,怎么把这堆数据暂存在内存中?不就是二维数组吗?
楼上说二维数组是两个1维数组的结论。我觉得他可能没用过二维数组写案例,两个下标为10的char占用字节为20。而char[10][10]占用是100个字节。根本不是同一个东西
回答于 2019-09-11 08:43:50
什么叫两个一维数组可以解决,你告诉我怎么解决
回答于 2019-09-11 08:43:50
学习C语言,这样瞎悟能学好吗。
多维数组是在连续的内存中分配的,这是一个语言的基本设施。你用多个一维数组代替何必呢。若需要三维数组你仍用一维数组代替,你烦不烦么。
现在新版本C语言标准用变长多维数组,用处大。处理矩阵、行列式方便。
回答于 2019-09-11 08:43:50
两条边的面积等于矩形的面积吗?
回答于 2019-09-11 08:43:50
我也来说说。
C语言没有专门的二维数组
首先,C语言中,基本类型里有“数组”,也就是一维数组。而我们平时所说的二维数组是元素为数组的数组,其实是一种用一维数组对二维数组的模拟。
一维数组可以解决多维问题
从底层实现来说,无论是一维数组、二维数组还是多维数组,在内存中都是以一维方式排列的。而多维数组也是用一维数组模拟实现的。从这一点来说,一维数组就能解决多维数组的问题。常见的模拟方式:
上一篇:和喜欢的女孩聊天总脑袋空白,有时候她发的一个消息我总是要过了好久才能想到一个回答,我该怎么办?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |