c语言二维数组(为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在)

2025-04-13 12:50:04 0

c语言二维数组(为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在)

本文目录

为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在

我也来说说。

C语言没有专门的二维数组

首先,C语言中,基本类型里有“数组”,也就是一维数组。而我们平时所说的二维数组是元素为数组的数组,其实是一种用一维数组对二维数组的模拟。

一维数组可以解决多维问题

从底层实现来说,无论是一维数组、二维数组还是多维数组,在内存中都是以一维方式排列的。而多维数组也是用一维数组模拟实现的。从这一点来说,一维数组就能解决多维数组的问题。常见的模拟方式:

  • 将 二维数组a

  • 用a

  • 注意这里是用一个一维数组代替二维数组,而不是用两个一维数组代替二维数组

多维数组有其存在的必要

从代码清晰易读的角度来说,二维数组、多维数组是有意义的。有许多数据是适合用二维数组或多维数组表示的。以适合的方式表示数据,算法的编写也会简洁明了。典型的适合二维数组表示的数据如平面图形、矩阵。用二维数组表示,程序清晰易读;如果用一维数组表示,其可读性就会低不少。

相对于汇编语言,C提供了一定的数据抽象,如数组、结构体(struct)、联合(union)。其实没有这些抽象,程序照样能编。但C语言的好处就在这里,它提供的抽象程度,非常适合系统级程序开发和维护。如果觉得C语言提供的抽象程度过高,也许汇编更适合您的项目,如果觉得C语言提供的抽象程度过低,那选择就多了,从C++,Java到现在的各种新语言,都可以尝试更换。

C语言二维数组,怎么理解

相信题主应该明白 C 语言中基本数据类型的变量,例如定义一个 float 型变量:

float a = 3.14;

变量 a 能表示一个数值,但是现实生活中,仅仅使用一个单数值常常是不能完成任务的。更多情况下,需要解决的问题数据类型都是比较复杂的。

一维数组

小明班级有 40 名同学,现在考试成绩出来了,要求我们使用 C 语言把它们的成绩从高到低排出来。要用 C 语言解决这个问题,首先要用 C 语言把 40 名同学的成绩表示出来。但是总不可能定义 40 个变量来存储各位同学的成绩吧?

好在 C 语言提供了数组语法,我们定义一个 score 数组用于解决这个问题是非常合适的:

float score;

score 有 40 个元素,可以表示 40 个同学的成绩。C 语言在内存中开辟一块连续的内存,供 score 使用,这块内存的大小等于 40*sizeof(float) 字节。

二维数组

要是现实生活中,所有问题都这么简单就好了,那我只要利用 C 语言的一维数组,就能走遍天下都不怕了。但是事与愿违,哪怕只是一个 9 宫格,一维数组已经不方便描述它了。

难道要定义 3 个一维数组来描述这个 9 宫格?就算可以,要是这个表再大点呢?比如 1000行,1000列呢?更进一步的,要是希望我们使用 C 语言描述笛卡尔二维坐标系,使用一维数组岂不是麻烦死了?

二维坐标系里的坐标怎样表示方便呢?数学中的表示方法就不错,横坐标为 a,纵坐标为 b 的点,写作(a, b)。

为了表述方便,使用 P 表示 9 宫格。如果在 P 中画上坐标轴,那每个格子描述起来就方便了,P(0,0) = 0, P(0,1) = 1,...

那要是 C 语言也能这么用,表示9宫格就太方便了,对不?实际上,还真可以。请看:

float pos;pos=0;pos=1;

几乎与用坐标描述一模一样,这可比用一维数组描述方便多了。类似的,三维数组,四维数组,都有适合使用它们的时候,理解方法也同二维数组相似。

二维数组的内存分配

对于人类来说方便的,死板的计算机不一定也这么认为。实际上,C 语言希望“规则”越少越好,它不怕麻烦,就怕“灵活”。

C语言对内存的分配方式,可不会随着人类认为的“维度”变化而变化。它就一种分配内存的方式,不管你是几维数组,分配内存统一按照线性划分。

对于 P。计算机最恨的就是“动脑”了,能用一维解决,就绝对不用二维。

而我们人类,最喜欢的就是,怎样方便怎样来。这也算是人与机器的区别吧。

欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言、linux等嵌入式开发,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。

c语言二维数组(为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在)

本文编辑:admin

本文相关文章:


c语言编程游戏(游戏编程是不是一般都是用C语言或C++)

c语言编程游戏(游戏编程是不是一般都是用C语言或C++)

本文目录游戏编程是不是一般都是用C语言或C++c语言能干嘛能写手游棋牌游戏需要程序员具备哪些条件游戏编程是不是一般都是用C语言或C++看了楼上很多人都说unity用c#,ue用c++,这样其实是错的,这两个引擎都是用的c++编写,然后增加了

2025年4月14日 00:00

C语言中的指针是什么意思?c语言指针问题

C语言中的指针是什么意思?c语言指针问题

本文目录C语言中的指针是什么意思c语言指针问题c语言指针详解c语言指针是什么意思!C语言指针的定义C语言的指针是什么C语言指针怎么用C语言中的指针是什么意思其实与其你在这里问,还不如看一看c语言教科书,上面写的都很详细以下是谭浩强版的在计算

2025年4月12日 20:30

thread是什么意思中文(C语言中Thread与Task有什么区别)

thread是什么意思中文(C语言中Thread与Task有什么区别)

本文目录C语言中Thread与Task有什么区别thread是什么意思C语言中Thread与Task有什么区别Thread是C#中最早的多线程模型,后来才推出的Task。微软推出Task的目的,就是要替代Thread,给程序员们提供一种更科

2025年4月12日 15:30

易语言破解版(易语言目前还有没有生命力)

易语言破解版(易语言目前还有没有生命力)

本文目录易语言目前还有没有生命力为什么易语言适合做外挂易语言目前还有没有生命力由于易语言在2000年设计,当初的一些架构在如今看来已有部分不合时宜,因此作者在近几年重新架构并开发了火山软件开发平台。火山软件开发平台充分应用了作者在近20年的

2025年4月12日 12:30

关于易语言的 驱动器框 目录框 文件框?怎样修改ppt文件边框

关于易语言的 驱动器框 目录框 文件框?怎样修改ppt文件边框

本文目录关于易语言的 驱动器框 目录框 文件框怎样修改ppt文件边框关于易语言的 驱动器框 目录框 文件框.版本 2.程序集 窗口程序集1.子程序 _驱动器框1_驱动器被改变目录框1.目录 = 驱动器框1.驱动器 + “:\”.子程序 _目

2025年4月11日 17:50

最强大的编程语言(你认为当今最强大的计算机语言是什么)

最强大的编程语言(你认为当今最强大的计算机语言是什么)

本文目录你认为当今最强大的计算机语言是什么请问最强大的编程语言是哪种功能最强大的编程语言是什么你认为当今最强大的计算机语言是什么最强大的计算机语言绝对是机器语言。机器语言可以实现用高级语言无法实现的功能。只要是计算机能实现的功能,用机器语言

2025年4月11日 10:20

超文本标记语言(超文本标记语言通常是指)

超文本标记语言(超文本标记语言通常是指)

本文目录超文本标记语言通常是指1 什么是超文本标记语言超文本标记语言 或者是html是什么东西超文本标记语言的英文简称是什么什么是超文本和超链接什么是超文本标记语言超文本语言是啥超文本标记语言通常是指网页的本质就是超级文本标记语言,通过结合

2025年4月7日 10:20

为什么要学习C语言?C语言学习的优势

为什么要学习C语言?C语言学习的优势

本文目录为什么要学习C语言C语言学习的优势为什么要学习C语言(1)应用软件。Linux操作系统中的应用软件都是使用C语言编写的,因此这样的应用软件安全性非常高。(2)对性能要求严格的领域。一般对性能有严格要求的地方都是用C语言编写的,比如网

2025年4月6日 17:40

哪一个编程语言比较好?什么是pypl,以及tiobe-index的不同

哪一个编程语言比较好?什么是pypl,以及tiobe-index的不同

本文目录哪一个编程语言比较好什么是pypl,以及tiobe-index的不同哪一个编程语言比较好Java仍然是最流行的编程语言。据TIOBE的数据显示,几十年来,Java比其他语言更常名列榜首。许多知名公司使用Java来开发软件和应用程序,

2025年4月5日 03:30

java接口代码(不同编程语言的程序可不可以通过接口相互调用)

java接口代码(不同编程语言的程序可不可以通过接口相互调用)

本文目录不同编程语言的程序可不可以通过接口相互调用Java代码评审都是怎么开展的呢不同编程语言的程序可不可以通过接口相互调用我从两个方面进行回答,一个是本地调用,一个是远程调用。一、本地调用本地调用又两个方面阐述,一是不同进程(不同进行语言

2025年4月1日 13:00

stakeholder theory(英语语言文学硕士毕业论文答辩一般会问什么问题)

stakeholder theory(英语语言文学硕士毕业论文答辩一般会问什么问题)

本文目录英语语言文学硕士毕业论文答辩一般会问什么问题stakeholder theory的案例会计英语摘要翻译 求求大家帮帮忙吧英语语言文学硕士毕业论文答辩一般会问什么问题英语语言文学硕士毕业论文答辩一般会问的问题如下:1、在答辩开始前,

2025年3月29日 17:00

在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解?if(i=a<ba:b;i>0;i--)啥意思

在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解?if(i=a<ba:b;i>0;i--)啥意思

本文目录在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解if(i=a0;i--)啥意思C语言中:x>yx:y; 是什么意思问号和冒号的作用是什么在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解?:称为条件运算

2025年3月29日 11:50

kratos(kratos支持什么语言)

kratos(kratos支持什么语言)

本文目录kratos支持什么语言kratos这单词翻译音标Kratos是什么意思kratos支持什么语言Java,JavaScript等。Kratos 是一款免费开源的两栏结构并且拥有自适应效果的WordPress主题,她能够在任何浏览器下

2025年3月25日 09:00

VB语言是什么?vbs文件怎么运行

VB语言是什么?vbs文件怎么运行

本文目录VB语言是什么vbs文件怎么运行vbs是什么怎么装vbaVB语言是什么Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为

2025年3月24日 09:00

谭浩强c语言电子版(哪本书最适合初学电工电子比如初学C语言就用谭浩强C程序设计,单片机就郭天祥单片机)

谭浩强c语言电子版(哪本书最适合初学电工电子比如初学C语言就用谭浩强C程序设计,单片机就郭天祥单片机)

本文目录哪本书最适合初学电工电子比如初学C语言就用谭浩强C程序设计,单片机就郭天祥单片机有什么好的学习C语言的方法哪本书最适合初学电工电子比如初学C语言就用谭浩强C程序设计,单片机就郭天祥单片机推荐邱关源的《电路》,这个很多高校作为教材使用

2025年3月23日 06:30

易语言辅助论坛(请问想学写游戏脚本,是学易语言还是学按键精灵)

易语言辅助论坛(请问想学写游戏脚本,是学易语言还是学按键精灵)

本文目录请问想学写游戏脚本,是学易语言还是学按键精灵学会易语言用处大吗请问想学写游戏脚本,是学易语言还是学按键精灵很多人都对游戏脚本感兴趣,但大部分只是想通过脚本帮助自己在游戏的时候玩的更加省劲,当然更多研究游戏的脚本的人或者工作室只是想通

2025年3月18日 14:40

谁知道网络游戏程序是用什么语言编写的?c语言程序代码

谁知道网络游戏程序是用什么语言编写的?c语言程序代码

本文目录谁知道网络游戏程序是用什么语言编写的c语言程序代码谁知道网络游戏程序是用什么语言编写的界面用JAVA .程序就不一定了 .用C++吧 .魔兽世界就是用C++编的哦 包括那些大型的网络游戏 一般用到opengl directx等c

2025年3月18日 12:50

c语言背包问题(C语言算法求助:背包问题)

c语言背包问题(C语言算法求助:背包问题)

本文目录C语言算法求助:背包问题c语言的穷举法的背包问题背包问题C语言简短代码,大神们最好带解释和注释,谢谢!!!背包问题,C语言编程C语言:背包问题(数据结构)用C语言实现背包问题求解背包问题(C语言)C语言算法求助:背包问题//如果每种

2025年3月18日 06:40

c语言网官网(c语言设计)

c语言网官网(c语言设计)

本文目录c语言设计学习C语言有哪些入门教材比较好c语言设计以前学习C语言的时候看的是“如鹏网”的视频教程——《C语言也能干大事》系列通过开发小游戏,开发网站的方式来讲解C语言的知识点,C语言开发网站中有一个案例,就是通过开发学生管理系统来讲

2025年3月16日 06:40

独立团易语言(在独立团学易语言能学成吗大概需要多久)

独立团易语言(在独立团学易语言能学成吗大概需要多久)

本文目录在独立团学易语言能学成吗大概需要多久我想学易语言,独立团教得怎么样啊易语言独立团模块核心库1.0零基础学习易语言要多久可以做辅助在独立团学易语言编程能学成吗在独立团学易语言能学成吗大概需要多久问题 不在学多久!!!是你想做什么...

2025年3月13日 09:20

更多文章:


cmd route命令(route add命令详解是什么)

cmd route命令(route add命令详解是什么)

本文目录route add命令详解是什么windows查看路由表的命令双网卡同时上网设置route命令route add命令添加路由列表route命令详解是什么关于路由表,CMD下ROUTE命令以及TCP/IP通讯的一些问题求大神级问答如采

2025年3月7日 09:00

accessible翻译(英语more accessible and affordable怎么翻译)

accessible翻译(英语more accessible and affordable怎么翻译)

本文目录英语more accessible and affordable怎么翻译5句英语翻译Sans espoir, n’est plus difficilement accessible翻译下英语问题,求高手!英语more accessi

2025年2月21日 17:30

urlscheme(URL scheme启动Android应用,原生Android浏览器解析不正确)

urlscheme(URL scheme启动Android应用,原生Android浏览器解析不正确)

本文目录URL scheme启动Android应用,原生Android浏览器解析不正确url scheme是什么意思第五人格的URLScheme是什么URL scheme启动Android应用,原生Android浏览器解析不正确1、自定义U

2025年2月16日 16:50

afford什么意思(afford是什么意思用法)

afford什么意思(afford是什么意思用法)

本文目录afford是什么意思用法afford的意思afford这个英语单词的用法谁知道afford的用法与搭配有哪些单词Afford什么意思afford是什么意思及用法Afford的用法afford是什么意思用法afford有提供、给予的

2025年3月2日 06:00

sled是什么意思(sleigh与sled的区别)

sled是什么意思(sleigh与sled的区别)

本文目录sleigh与sled的区别uled,oled,qled,sled,glef都是什么意思luge和sleigh的区别sleigh与sled的区别都是雪橇,如果要严格区分,sleigh 是 马拉雪橇,sled 是狗拉雪橇,另外还有动词

2025年2月13日 07:50

测试工程师面试题(面试软件测试工程师,一般都会被问到什么好慌)

测试工程师面试题(面试软件测试工程师,一般都会被问到什么好慌)

本文目录面试软件测试工程师,一般都会被问到什么好慌软件测试工程师面试题及答案 一,什么是软件测试测试工程师面试常见问题是什么软件测试工程师的面试题,,哪位大大帮帮我,应该怎么回答比较好 1、如果一个网页打不开,怎么分析原因面试软件测试工程师

2025年2月27日 13:10

finally翻译(finally 是什麽意思)

finally翻译(finally 是什麽意思)

本文目录finally 是什麽意思finally中文是什么意思英语单词finally是什么意思Finally用英语怎么读请问Finally中文是什么意思finally意思finally是什么意思finally 是什麽意思finally基本翻

2025年3月1日 20:30

各种表格制作教程(工作表格怎么制作教程)

各种表格制作教程(工作表格怎么制作教程)

本文目录工作表格怎么制作教程表格的基本制作方法工作表格怎么制作教程带来办公软件excel表格制作教程,希望以下的分享能够帮助到您。办公软件excel表格制作教程  步骤1、首先打开Excel;  步骤2、选中想要制作表格的部分;  步骤3、

2025年4月4日 16:40

bed是什么意思英语(bed是什么意思)

bed是什么意思英语(bed是什么意思)

本文目录bed是什么意思bed是什么意思英语床的英文怎么读bed什么意思我想知道bed英语是什么意思床的英语是什么bed英语单词是什么意思bed是什么意思bedn.床;床铺,床位,床垫就寝时间;睡眠婚姻,夫妻关系;住宿坟墓底座床lieinb

2025年3月18日 07:50

subject是什么意思英语(英文“subject”怎么读)

subject是什么意思英语(英文“subject”怎么读)

本文目录英文“subject”怎么读subject和lesson的用法subject的中文意思是什么subject是什么意思啊subject和lesson的区别是什么Subjects是什么意思“SUBJECT”单词的中文翻译英文subjec

2025年4月1日 02:20

oracle 9i(oracle中8i,9i,是什么意思)

oracle 9i(oracle中8i,9i,是什么意思)

本文目录oracle中8i,9i,是什么意思如何安装配置Oracle 9i网络环境一Oracle 9i如何用SQL语句创建数据库oracle 执行计划 9i 和10g的区别如何实现ORACLE 9I的自动备份和还原Oracle 9i和Ora

2025年2月13日 15:10

线上抽奖方式?用微赞做企业直播,想给观众在线抽奖,怎么使用在线抽奖功能

线上抽奖方式?用微赞做企业直播,想给观众在线抽奖,怎么使用在线抽奖功能

本文目录线上抽奖方式用微赞做企业直播,想给观众在线抽奖,怎么使用在线抽奖功能线上抽奖怎么能中求一个免费的年会抽奖软件微赞直播在线抽奖跟抽奖大转盘有什么区别有没有一种抽奖软件想让谁抽中啥就抽中啥的如何在我在微赞做的电商直播中实现抽奖功能有哪些

2025年3月5日 00:00

dispatchevent(lua 自定义event,怎么处理dispatchEvent)

dispatchevent(lua 自定义event,怎么处理dispatchEvent)

本文目录lua 自定义event,怎么处理dispatchEventmagento dispatchevent 使用的是什么模式dispatchevent怎么组织冒泡JavaScript 中的dispatchEvent是怎么用的lua 自定

2025年3月14日 00:00

tactics翻译(军事战术用语(英文及中文翻译))

tactics翻译(军事战术用语(英文及中文翻译))

本文目录军事战术用语(英文及中文翻译)在英语翻译中战略与策略都是strategy,请问,欧美人在使用这两个词时是如何区分的足球专业术语英文翻译战略用英语怎么翻译英语Special-Tactics怎么翻译迂回战术用英语怎么说上兵伐谋攻心为上【

2025年2月8日 17:50

fileoutputstream写入文件(如何将一个Stream类型的流写入一个文件中)

fileoutputstream写入文件(如何将一个Stream类型的流写入一个文件中)

本文目录如何将一个Stream类型的流写入一个文件中接收键盘输入的字符串,用FileInputStream类将字符串写入文件,用FileOutputStream类读出文件内容显示在屏接收键盘输入的字符串,用FileOutputStream类

2025年2月20日 14:20

protocol labs(outlook express运行时,占用的是哪个端口)

protocol labs(outlook express运行时,占用的是哪个端口)

本文目录outlook express运行时,占用的是哪个端口A Brief History of the InternetFilecoin是什么东西outlook express运行时,占用的是哪个端口windows系统自带的“资源管理器

2025年3月3日 06:50

smell的过去式(smell的过去式是smelt吗)

smell的过去式(smell的过去式是smelt吗)

本文目录smell的过去式是smelt吗smell的p.t形式smell为什么有两个过去式smell动词的过去式Smell过去式和过去分词smell 什么意思smell的过去式是smelt吗Smellvi. 嗅,闻;有…气味vt. 嗅,闻;

2025年2月23日 00:50

怎么用源码制作网站(源码怎么建网站)

怎么用源码制作网站(源码怎么建网站)

本文目录源码怎么建网站如何用源码建立一个自己的网站啊那位高人带我下!非常感谢!源码怎么弄成网站怎么用源码建立网站有源代码怎么建网站源码怎么建网站源码建站的具体操作步骤:申请虚拟主机(即空间)成功后,就会从官网得到FTP主机名、FTP用户名和

2025年3月14日 16:20

dw做动态网页教程(Dreamweaver动态站点怎么设置)

dw做动态网页教程(Dreamweaver动态站点怎么设置)

本文目录Dreamweaver动态站点怎么设置怎么用Dreamweaver做动态的网站用DreamweaverCS6制作网页的操作步骤如何用dream weaver做出动态网站如何利用dreamweaver 8制作动态网站怎样使用Adobe

2025年2月25日 17:50

10进制转16进制在线转换(十进制数和十六进制数怎么转换)

10进制转16进制在线转换(十进制数和十六进制数怎么转换)

本文目录十进制数和十六进制数怎么转换十进制 转换 成16进制十进制数和十六进制数怎么转换16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大

2025年4月2日 10:20

近期文章

triumphs(trinmph什么意思)
2025-04-14 14:10:02
本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:20
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:7
标签列表

热门搜索