【连载】(初识一维数组)——乐创DIY C语言讲义——5.1节 2024-05-09 06:03:13 5.1初识一维数组前面章节中,我们一起学习了一些简单的数据类型,它们包括浮点类型和整数类型两大类。通过使用关键词可以分别定义不同含义的单个变量。比如,小明这次考试的数学成绩是30分,那么我们可以定义一个变量“int MathScore = 30;”来存储小明这次的数学成绩/这个操作方式其实是数据类型的最简单表现方式,即定义单个的变量来存储某个数值,或者参与某次运算。基于上面所述的内容,现在有一个棘手的问题,加入小明班级里面一共有40个同学,我要将小明班上的40个同学的成绩全部存储下来,那么我该如何定义这些变量?当然,这个问题最无脑的解决方法就是分别定义40个变量“int XiaomingMathScore, XiaozhangMathScore……”。当然这也不失为一个可以解决问题的方法,但是当你把这些变量全部一个个刚刚定义好,我想你就已经忘记究竟谁是小明,谁是小张了。C语言为了存储这种多个变量的数据,特别规定了一种数据类型,它就是“数组”。数组,归根到底其实就是相应数据类型的变量的集合。它的定义方式为:数据类型数组名[数组长度];比如,我要定义一个数组,用来存储小明班上所有同学的成绩,那么可以使用语句“int Score[40];”来定义这个数组。数组定义完成之后,数组内部的每一个合法的存储空间都可以被使用,这种数组内部的每一个存储空间,我们称之为“元素”。数组中每一个元素的数据类型,就是这个数组被定义时的数据类型,比如,“int Score[40];”中每一个Score的数据类型都是int型。数组定义好之后,我们可以操作其内部的每一个元素,这种数组元素操作的方式叫做“引用”。有两种方式可以引用数组中的元素,一种叫“下标引用”,另一种叫做“指针引用”。本小节先介绍“下标引用“,等到后面学完指针,再来探讨“指针引用“。所谓“下标引用“,即直接利用数组元素的下标进行元素引用。比如我们定义了一个数组变量”int a[8];“。当这个变量定义好之后,数组的首地址,即首个元素的地址,是由编译器自动分配的,其余元素的存储地址,按照顺序依次排列下去。数组的首地址是从0开始排列的,因此第1个元素的下标为0,第2个元素的下标为1,以此类推,到第n个元素时,其下标为n-1。其内存编排如图5-1-1所示。图5-1-1 内存地址编排图5-1-1中,a[0]即表示这个数组被定义时,编译器分给它的首地址。那此后的每一个元素的地址,都是在这个首地址上进行偏移,偏移量即为其数据类型所占用的内存字节数。当我们使用下标引用数组中的元素时,直接使用数组名[元素下标]的方式即可实现。如数组a[8]中,引用第0个元素为a[0],引用第1个元素为a[1],引用第2个元素为a[2],以此类推,引用第7个元素为a[7]。而如果引用a[8]时,则为非法引用。这是因为,当我们定义一个数组时,”int a[8];“,此时这个中括号里面的8代表的是整个数组一共有多少个元素,而我们在引用元素的时候,”a[2]“中括号里面的数字,代表的是引用第几个元素。而由于数组的元素是从0开始排序的,假设此数组被定义成了拥有8个元素的数组,那么其序号就为0,1,2,3,4,5,6,7这8个数字。 赞 (0) 相关推荐 【原创】VBA学习笔记(12)VBA的数组 array 一 数组 array 1.1 什么是数组?具体的例子 以这个语句为例子 arr1=array(1, 2, 3) 左边:变量名=数组名 右边:数组,集合,多个元素集合,多个数据集合, 右边的单个内容,1 ... java学习——24.一维数组 之前的基本数据类型变量一次只能存储一个不可分解的简单数据,比如int i:一次只能存储一个整数.但是在实际的应用当中,可能会需要一次存储很多个整数,比如之前有一个例题,Fibonicci数列,之前做时 ... 【连载】(函数私有化)乐创DIY C语言讲义——4.6节 4.6 函数私有化 C语言的语句非常简单,关键词也少得可怜,关于变量和函数的修饰符也就只有区区几个,因此一个关键词有时候有着多重含义,这也就是为何C语言明明非常简单,但是用起来又非常复杂的原因之一.C ... 【连载】(堆栈和递归函数)乐创DIY C语言讲义——4.5节 4.5 堆栈和递归函数 堆栈这个概念,最早学习微机原理的时候就学过,它表示的是一种在汇编语言调用子程序时候保存现场的存储空间,它所具有的数据结构属性就是先进后出,这个是我们之前学习计算机硬件时候讲述的 ... 【连载】(学了这么多年C语言,你真的了解static关键词吗)乐创DIY C语言讲义——4.4节 4.4 变量的补充 前面内容中,我们已经讨论了变量的定义,但是由于函数的概念还没有引入,因而这是不全面的,本节开始,我们再来补充一些变量的其他内容,这就相当于对变量这个概念的重新认识. 我们之前讲的变 ... 【连载】(函数的参数和返回值)乐创DIY C语言讲义——4.3节 4.3 函数的参数和返回值 函数定义和声明好之后,整个函数也就定义好了,上一小节我们说到,声明函数原型的目的,就是将函数的信息传递给编译器"登记"下来,以便后续调用时进行参数的检查 ... 【连载】(函数声明和简单的Makefile文件)乐创DIY C语言讲义——4.2节 4.2 函数声明 当编译器检测到一个函数调用时,它产生代码传递参数,并且调用这个函数,等函数运行完成之后,接收到这个函数的返回值(如果函数有返回值).但是编译器是如何知道函数接收到的是什么类型和多少数 ... 【连载】(函数的定义)乐创DIY C语言讲义——4.1节 4.1函数的定义 到目前为止,我们所有的程序都是以"main()"函数作为程序的唯一入口的,对main函数的解释,也就仅限于其作为整个程序的入口.但是函数的定义,入口参数,返回值等 ... 【连载】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4) 4 选择执行语句 有些时候,我们希望程序既不顺序执行,也不只做单一的判断(代码运行还是不运行),很多时候,我们往往只希望对某一个条件的不同状态分别执行不同的语句,这样就构成C语言中的选择执行语句了.C ... 【连载】(循环执行语句while和if)乐创DIY C语言讲义——3.8节(3) 2 循环执行语句 计算机有一个强大的能力,快速地重复执行某一计算,这种重复计算多次的方法,是通过软件中的循环执行语句去实现的.C语言中实现循环语句结构的方式有三种,第一种为"for" ... 【连载】(判断执行语句)乐创DIY C语言讲义——3.8节(2) 2 判断执行语句 判断执行语句,执行时候会有一个条件判断,一旦当条件判断为真,即True的时候,就执行相应的语句,满足条件被执行的语句用大括号"{}"括起来.由于在C语言中没有用于 ... 【回顾】(函数的参数和返回值)乐创DIY C语言讲义——4.3节 4.3 函数的参数和返回值 函数定义和声明好之后,整个函数也就定义好了,上一小节我们说到,声明函数原型的目的,就是将函数的信息传递给编译器"登记"下来,以便后续调用时进行参数的检查 ...