内容正文:
好了,同学们,我们这节课来讲解一下一维数组、二维数组以及一维和二维数组的一个对比。首先我们来看一下考核分析和历年的一个考试例题的分析。首先考纲要求对于一维数组和二维数组的定义、初始化以及数组元素的引用有相关的一个要求。来我们看一下下面这一个例题,找出数组72159311当中的最大值、最小值以及它的一个索引。首先我们来看一下这个题目,头文件主函数。在主函数当中我们定义了这个数组72159311。然后第二句语句int n等于一个size of a22是这个数组名除一个size of a220。这一条语句代表的是我要算出这个整体的这个字符,这个数组的一个长度,然后付给这个变量N接下来int max对应的值等于个,我们先把它把第一个数组的值赋给它一个最大值,相当于我最大值先是第一个,然后最小值也是第一个。然后我们把这个最大值的索引,最小值的索引都给它初始化为零。然后接下来我们使用for循环来进行遍历整个诉讼。首先int I初始化为一,I小于NI加加,因为N的话是一个数组长度,所以说我遍历整个数组来寻找它的一个最大值。首先第一个FARRI大于个最大值,因为本身我初始化为一个第一个数组的第一个值。如果说它大于它的话,那么我们把它对应的值赋给这个最大值,并且把它的一个索引也付给它的一个最大索引。所以说经过这个循环之后,整个表当中我是不是就可以把这个最低值给它取出来。同样道理,如果说AR2小于个最小值,那么我们把它的这个值赋给它的一个最小值,并且把索引也付给它的一个最小索引。经过这个for循环之后,遍历完整个数组,那么我们就可以得出它的一个最大值、最小值以及它的对应的一个索引。好,我们来看一下一维数组的概念。一维数组是由相同与相同的数据类型的元素组成的一个线性序列,通过一个下标索引来访问元素。下标是从零开始的语法格式,就是在前面我写上一个对应的一个数据类型,然后在后面跟上一个数组名以及小括号当中输入一个数组的个数。比如说我们在这一条,在这个PPT当中,我们定义了一个五个整数的一个数组。在前面写上它的一个数据类型,int类型scores。然后在方括号当中写入5,就是定义了是五个整数类型的数组被初始化时,数组的元素为随机数。然后第二个我们定义的是一个float类型的数组,然后定义的其中是float类型。第三个是定义的叉,类型定义的是20个字符的数,而且这个字符数组常用于存储字符串。我们来看一下关键说明,关键说明的话数据类型可以是int flow叉的任意C语言当中的一个合法类型。第二个数组名遵循变量的命名规则,字母、数字、下划线不能是以数字开头。接下来第三个元素的个数必须是啊一个常量,或者说常量表达式不能是变量。在方括号当中是不能是变量的,且大数且这个个数是必须要大于等于个一。好,我们来看一下初始化的方法。第一个方法是完全初始化,是指定所有的元素一个值。例如我们定义了一个名为a read int类型的数组,然后在这个数组当中我们分别给它初始化为12 13 10,相当于这数组当中的元素是不是都进行了一个初始化,定义了三个元素依次为12 13 10。它的特点是速度长度由发括号内的值的个数决定,与花阔与这个方括号内的数字必须是一致的,否则是报错。方括号里边是三个,那么它对应的花括号里边的个数也是三个。接下来第二个部分出什么是只付前N个元素值。例如我定义了一个numbers的int类型的一个变量,这个数组变量,然后在其中花括号当中赋值为一和2,相当于我前两个元素为一二,后三个自动是初始化为零。又例如我们定义一个flow类型的一个数组,然后第一个元素的话我们给它复制为3.14,后三个的话依然是为0.0,因为它是一个分类类型,特点是如果说没有初赋值的这个元素,它会自动初始化为零,这是一个数值型。第三个初始化的方式是省略长度初始化,是由这个编译器自动计算长度。例如我定义一个int类型的一个一定一个int类型名为da的一个数组,然后在花括号当中,在方括号当中,我们没有输入任何的一个常量或常量表达式。然后在后面复制为5678,那么它的数组的长度就会自动计算为R56784个数。需要注意的是,省略长度时必须给出初始化的值,否则无法确定一个数组的一个大小。然后接下来方法四是动态初始化。我们通过循环赋值来进行一个赋值。例如定义一个rin int类型的一个词组,然后通过for循环来把这个数组元素进行一个赋值。适用场景是当元素值需要通过计算时来进行一个生成。然后我们来看一下初始化的一个注意事项。初始化在数组长度和数值的一个初始化数量当中。如果说风口号内指定长度,花括号内值的个数不能超过长度,否则就会产生一个编译的错误。例如我们举一个例子,方括号当中写入的是3,但是在花括号当中数值是四个值的个数。四超过了长度三周就会产生一定的编译错误。核心特点是所有的元素类型必须是一样的,占用的内存的大小是一致的,然后元素在内存当中是连续进行存储的,可以通过下标来进行快速访问。下标就是我们所说的那个索引。然后我们来看一下内存的存储方式。以int数组为例,例如我们定义了一个rint类型的个数为三的一个数组,然后再给它赋值为12 13 10。我们假设内存地址是从一千开始,那么在第一千内存地当中,内存地址内存当中,我们就有存储的内容,就是十下标为零。然后因为int类型它是占四个,所以占四个字节的大小。因此我下一个内存地址开始的话,就是从1004开始,然后在内存当中存储的值就是20下标为一。讲讲道理。下一个就是1008,存储内容为30,下标为二,并且它是一个连续存储的一个线性存储结构。好,我们来看一下关键说明。连续存储。比如说每个int元素占四个字节,那么相邻元素地址就是差四个字节。地址就是首地址加下标乘以它的一个元素结束。比如我们举了一个具体的一个计算公式,元素而为I的计算地址就是数组的一个首地址。加上I乘以个四四的话,是因为int类型是一个四个字节,这是对应的一个字节数。然后逻辑与物理,一维数组在逻辑上是线性排列的,在物理上是严格连续存储,符合数组随机访问的一个特性。好,我们来看一下一个具体的一个代码。比如说我们还是定义了一个a read in的类型的一个数组值20 30,然后输出对应的值。那么我们打印输出对应的值就可以输出对应的一个地址百分之P这个占位符输出的是它的一个地址,百分之D输出是它对应的一个值。因此假设我们首地址是以16进制为K于是16进制的7FFF那么我们后面是啊相应的就是加字,对应的也是存储的相应的值12 10和30。好,我们来看一下一维数组的元素引用。语法的话我们是用的是数组名,然后方括号下标的一个形式。比如我们int free 5,然后给它全部初始化之后,我们输出用Green f函数来输出对应的某一个元素数组当中的某一个元素。例如我第一个元素,那么我用百分之D逗号,然后在array当中用数组名,然后再写出。在其中方括号当中写入对应的索引,那么我就可以输出对应的值。如果说对数组当中的元素进行修改的话,那么我写入数组名,然后下标输入对写入对应的索引,然后给它进行一个赋值操作,就可以把第三个元素给它赋值为300。好,我们本节课就讲解到这里,谢谢大家。
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。