首页 > 其他分享 >第五小组chap 7学习总结

第五小组chap 7学习总结

时间:2022-11-09 20:00:25浏览次数:37  
标签:小组 下标 定义 数组名 int 元素 第五 chap 数组

  什么是数组呢?

  顾名思义数组就是很多数的组合!那么这些数有没有什么要求呢,是不是不管什么数组合在一起都是数组呢?同一数组中存储的数必须满足以下两个条件:

  1.这些数的类型必须相同。

  2.这些数在内存中必须是连续存储的。

一、一维数组

一维数组的定义方式如下:类型说明符 数组名[常量表达式];

例如:

int a[5];

它表示定义了一个整型数组,数组名为 a,定义的数组称为数组 a。数组名 a 除了表示该数组之外,还表示该数组的首地址;
此时数组 a 中有 5 个元素,每个元素都是 int 型变量,而且它们在内存中的地址是连续分配的。也就是说,int 型变量占 4 字节的内存空间,那么 5 个int型变量就占 20 字节的内存空间,而且它们的地址是连续分配的。
这里的元素就是变量的意思,数组中习惯上称为元素。
在定义数组时,需要指定数组中元素的个数。方括号中的常量表达式就是用来指定元素的个数。数组中元素的个数又称数组的长度。
数组中既然有多个元素,那么如何区分这些元素呢?方法是通过给每个元素进行编号。数组元素的编号又叫下标。
数组中的下标是从 0 开始的。那么,如何通过下标表示每个数组元素的呢?通过“数组名[下标]”的方式。例如“int a[5];”表示定义了有 5 个元素的数组 a,这 5 个元素分别为 a[0]、a[1]、a[2]、a[3]、a[4]。其中 a[0]、a[1]、a[2]、a[3]、a[4] 分别表示这 5 个元素的变量名。
为什么下标是从 0 开始而不是从 1 开始呢?试想,如果从 1 开始,那么数组的第 5 个元素就是 a[5],而定义数组时是 int a[5],两个都是 a[5] 就容易产生混淆。而下标从 0 开始就不存在这个问题了!所以定义一个数组 a[n],那么这个数组中元素最大的下标是 n–1;而元素 a[i] 表示数组 a 中第 i+1 个元素。

另外,方括号中的常量表达式可以是“数字常量表达式”,也可以是“符号常量表达式”。但不管是什么表达式,都必须是常量,绝对不能是变量。通常情况下 C 语言不允许对数组的长度进行动态定义,换句话说,数组的大小不依赖程序运行过程中变量的值。

二、一维数组初始化

一维数组的初始化可以使用以下方法实现:
1) 定义数组时给所有元素赋初值。如:

int a[5] = {1, 2, 3, 4, 5};

通过将数组元素的初值依次放在一对花括号中,如此初始化之后,a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5,即从左到右依次赋给每个元素。而且初始化时各元素间是用逗号隔开的。
2) 也可以只给一部分元素赋值。如:

int a[5] = {1, 2};

定义的数组 a 有 5 个元素,但花括号内只提供两个初值,这表示只给前面两个元素 a[0]、a[1] 初始化,而后面三个元素都没有被初始化。没有被初始化的元素自动为 0。
下面给大家写一个简单的程序:

 

输出结果是:


a 表示数组的名字,[5] 表示这个数组有 5 个元素,并分别用 a[0]、a[1]、a[2]、a[3]、a[4] 表示。并分别把花括号内的 1、2、3、4、5 赋给变量 a[0]、a[1]、a[2]、a[3]、a[4]。再次强调,下标从 0 开始,即从 a[0] 开始,而不是 a[1]。

三、一维数组元素的引用

数组必须先定义,然后使用。C 语言规定,只能逐个引用数组元素,而不能一次引用整个数组。数组元素的表示形式为:

数组名[下标]

下标可以是整型常量或整型表达式,如:

a[0] = a[5] + a[7] - a[2 * 3]

定义数组时用到的“数组名[常量表达式]”和引用数组元素时用到的“数组名[下标]”是有区别的,定义数组时的常量表达式表示的是数组的长度,而引用数组元素时的下标表示的是元素的编号。比如:

输出结果是:

“int a[5];”是定义了有 5 个元素的数组,这 5 个元素分别为 a[0]、a[1]、a[2]、a[3]、a[4]。而 t=a[3] 中的 a[3] 不是数组,只是其中的元素 a[3]。

此外,当给元素单独赋值时不能加大括号,因为元素就是变量,即 a[5] 只是一个变量名。前面是怎么给变量赋值的现在就怎么给数组元素赋值,比如“a[5]=1;”。但是对于上面这个程序,这么写还是错误的。因为数组元素的下标是从 0 开始的,数组 a 的元素只有 a[0]~a[4],并没有 a[5] 这个元素。

四、总结

通过本次学习,我们初步认识到数组的相关知识,数组在c语言中运用得比较广泛,我们更要认真学习,打好基础。

标签:小组,下标,定义,数组名,int,元素,第五,chap,数组
From: https://www.cnblogs.com/yblh331/p/16874966.html

相关文章

  • 贡献者任务第五期,炫酷登场!
    夏天夏天悄悄过去,留下小惊喜。虽然夏天的火热已经远去,但是OpenMLDB鼓励开发者参与贡献的火热活动从未停止。开源机器学习数据库OpenMLDB,邀请你参与第五期贡献者任务。......
  • 萌新卷妹带你逃出算法无名岛第五站
    萌新卷妹带你逃出算法无名岛第五站......
  • 操作系统学习笔记——第五章 I/O设备管理
    在学习操作系统时总结了笔记,并分享出来,特别是蓝色和红色字体。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。参考书:《操作系统》谌卫军等,清华大学出版社,2012年......
  • 【JavaScript 教程】第五章 字符串01— JavaScript 字符串
    英文 | https://www.javascripttutorial.net/译文|杨小爱在上节,我们学习了JavaScript流程中的 continue 语句,错过的小伙伴可以点击文章《​​【JavaScript教程】第四......
  • 第五章 if语句
    5.1案例if中的比较运算符两边要添加空格cars=['audi','bmw','toyota']forcarincars:ifcar=='bmw':print(car.upper())else:print(......
  • 学习的第五天
    2022.11.08前天晚上回去变黄码了,无语显示的跟前几天同样的原因,早上起来又变回来了,还打算上午不去了在家上网课,虽然笔记本没有带回来但是家里的电脑还是能够战......
  • CodeStar第五周周赛
    T1:复合逻辑表达式本题难度中等,线性\(dp\)问题。根据最后一个运算递推:如果是AND,需要两边都是true;如果是OR,只需任意一个是true当S[i]='AND'y[i-1]=T且x[i]=T:......
  • opentk第0章 chapter0
    Chapter0:LearnOpenTKin15'第0章:在15年学习OpenTKSo,youhavedownloadedthelatestversionofOpenTK-whatnow?所以,现在你已经下载了最新版本的OpenTK-接......
  • 2022 第五届强网拟态国际精英挑战赛 Rev WP
    养老选手,六个题目只来得及做了三个windows_call利用KiFastSystemCall进行系统调用,因此本程序中许多系统级函数都是动态调用,不过问题不大,该程序的加密验证逻辑并未用......
  • 第五周总结
    目录人狗大战面向对象核心思路前戏编程思想面向对象之类与函数#类与对象的创建需求:清华大学学生选课系统对象独有的数据对象独有的功能人狗大战面向对象核心思路前戏编程......