当前课程知识点:C语言程序设计 >  第7章 数组 >  7.1 一维数组的定义和引用 >  一维数组的定义和引用

返回《C语言程序设计》慕课在线视频课程列表

一维数组的定义和引用在线视频

下一节:一维数组的赋值

返回《C语言程序设计》慕课在线视频列表

一维数组的定义和引用课程教案、知识点、字幕

同学们

大家好

今天我们来学习C语言中

最基本的构造类型数组

首先我们来学习C语言中

一维数组的定义和引用

在日常生活中

我们会经常遇到这样的情况

需要处理一个班若干名学生的成绩

或者是一串字符

一个矩阵等等

而这些信息

都有一个共同的特征

它们不是只有一个特定的数据

而是由很多个相关的数据分量组成的

这就是构造数据类型

它类似于一个集合概念

它的分量

元素

是某种基本类型

或是另外一种构造类型

由于构造类型包含多个相应的数据分量

因而在实际应用时

一般不能整体操作

只能对它的相应分量

元素

进行相应的操作

而且这个元素必须是相当于

一个简单类型数据

比如

无论一个建筑物多么复杂

构成它的基本建筑材料

可能是砖块

我们可以理解为砖块相当于

一种基本数据类型

由砖块儿可以构造出我们所需要的

各种各样复杂的建筑结构

比如墙体

房间甚至是整栋建筑——构造数据类型

在这里

我们把基本类型类比为砖块儿

而各种各样的构造类型类比为墙体

房间甚至是整栋建筑

作为常识

大家都知道

一个建筑不是一下就建成的

而是通过一块块砖

慢慢堆砌构造而成

正因为如此

一个构造数据类型

是不能整体操作的

我们只能对它的分量

元素

进行相应的操作

我们在数学中也学过有关数组的概念

也有相应的表示方法

在数学中

我们的数组无非是一组数据的总称

用一个特定的名称来标识它

而我们用下标来区分它的不同分量

在c语言中

数组的概念和数学中的数组概念类似

在这里

让我们首先来定义一下

什么是构造类型

构造类型是由若干基本类型数据

按一定规则组成的复杂数据类型

组成该类型的基本类型

称为它的分量

元素

构造类型的变量

一般不能整体进行操作

只能对它的元素直接进行相应的操作

数组

就是我们c语言中最基本的构造数据类型

下面我们来介绍数组的概念

数组是相同数据类型数据元素的序列

数组的特性有

1

它是一组有序数据元素的集合

2

数组的每一个数据元素具有相同的数据类型

3

数组的元素

用下标或者序号来表达

4

这个集合用一个数组名来表示

有同学可能要问

为什么数组的每个元素

必须具有相同的数据类型呢

答案很简单

我在这举一个相应的例子

比如说

老师站在教室当中

学生们坐在下面

这个时候

老师如何确定他到每一排学生的距离呢

我们是否需要用一个尺子量每一排到老师的距离呢

我想

没有这个必要

老师只要知道

他到第1排学生的距离及每一排的间距

那么他就可以很容易的计算出来

任何一排学生到他的距离

而没有必要一排一排地分别地去丈量

老师之所以能这样做

有一个显然的必要条件

那就是

我们要假设每一排和每一排的间距是相同的

我们在学习了数组相关概念之后

首先要考虑一下数组的分类问题

正如我们在日常生活中

也有相关的分类思想

比如说

一个立方体

是由若干个面组成

而一个面又是由若干条线组成

而一条线又是由若干个点组成

而我们在这所说的三维概念

跟数组的相关的维数概念是类似的

所以说我们应该从点出发

把一个普通的基本类型看作是一个点

然后

由若干个点构成一条线

而这就是一维数组

在数学中一个数组的不同分量

我们是通过使用下标的方法来区分表示的

如果使用一个下标

对应一维数组

如果使用两个下标

对应二维数组

依此类推

下面我们来看一下数组的定义方法

首先

在定义数组时

我们需要说明数组的每个元素的数据类型

然后我们要说明数组的名称

还要说明数组在这一维度里边的元素个数

其中类型说明符

用来表示数组的类型也是数组元素的类型

因为所有数组元素具有相同的数据类型

它们可以是整型

浮点型

双精度浮点型

字符型等

数组名

也就是这一组数据的集合的名字

它的语法跟普通的变量标识符语法保持一致

而中括号里边的常量表达式

用来表达在这一维度里面元素的个数

例如

int a[10];它表示定义了一个名称为a

具有10个元素的整型的一维数组

一个数组

在存储器里面存储时

是从第1个元素开始

连续存放的

而它的下标

不是我们习惯上的从1开始

而是从零开始

在数组进行定义时

数组元素的个数应该是一个常量不能是变量

也就是说

c语言

不允许对数组的大小做动态的定义

即数组的大小不能依赖于程序运行过程中变量的值

另外一点

数组的下标

我们是通过方括弧来表达的

这一点和数学中的表达方法有着质的区别

希望同学们注意

原因是

在程序设计的过程当中

我们的程序都是文本文件

没有上下标概念

那么一维数组在内存中是如何存放的呢

如图所示

这个例子当中

定义了一个一维数组

数组的名字叫mark

数组的元素类型为浮点型

而数组元素的个数为100

由于这个数组是浮点类型

而每一个浮点类型变量在内存中占4个字节

假设这个数组

在内存中从1000号单元开始分配

那么mark[0]的地址

就是数组的起始地址1000

Mark[1]的地址

显然是1000加4等于1004

依此类推

下面我们介绍数组元素的引用

数组元素的引用语法是

数组名中括号下标表达式

为了程序的灵活性

我们的下标表达式

可以是任何合法的整型表达式

在这里要注意

定义数组时

用到的常量表达式

是用来表达数组元素的个数的

或者说是数组的维度

而数组元素引用时

所使用的下标表达式是数组元素的实际下标

也就是数组元素的序号

还有一点要特别强调

我们在使用数组的下标时

在c语言当中

数组的下标是从零开始的

因而定义一个数组时

如果数组元素个数是10

数组元素引用时

下标的最大值是9

这一点要特别注意

因为c语言

在具体程序设计过程当中

不进行下标的合法性检查

同学们

今天的内容就讲到这里

再见

C语言程序设计课程列表:

第1章 C语言程序设计预备知识

-计算思维与计算机

--计算思维与计算机

--计算思维与计算机

--计算思维和计算机

第2章 C语言程序设计基础

-2.1 程序设计语言的发展及其特点和应用

--程序设计语言的发展及其特点和应用

--程序设计语言的特点及发展

- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤

-- C语言程序的基本结构及编制C语言程序的基本步骤

--C语言程序的结构和编制步骤

第3章 基本数据类型、运算符与表达式

-3.1 C语言的数据类型

--C语言的数据类型

--C语言的数据类型

-3.2 常量

--常量

--常量

-3.3 什么是变量

--什么是变量

--什么是变量

-3.4 如何进行算术运算

--如何进行算术运算

--如何进行算术运算

-3.5 赋值运算符和逗号运算符

--赋值运算符和逗号运算符

--赋值运算符和逗号运算符

-3.6 数据类型转换

--数据类型转换

--数据类型转换

第4章 基本输入输出和顺序程序设计

-4.1 格式化输出printf

--格式化输出printf

--格式化输出

-4.2 格式化输入scanf及字符数据的非格式化输入输出

--格式化输入scanf及字符数据的非格式化输入输出

--格式化输入

第5章 选择结构程序设计

-5.1 关系运算符和关系表达式

--关系运算符和关系表达式

--关系运算符和关系表达式

-5.2 逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

-5.3 条件运算符和条件表达式

--条件运算符和条件表达式

--条件运算符和条件表达式

-5.4 if语句

--if语句

--if语句

-5.5 switch语句

--switch语句

--switch语句

第6章 循环结构程序设计

-6.1 while语句

--while语句

--while语句

--do-while语句

-6.2 for语句

--for语句

--for语句

-6.3 循环的嵌套

--循环的嵌套

--循环的嵌套

-6.4 break语句和continue语句

--break语句和continue语句

--break和continue语句

第7章 数组

-7.1 一维数组的定义和引用

--一维数组的定义和引用

--一维数组的定义和引用

-7.2 一维数组的赋值

--一维数组的赋值

--一维数组的赋值

-7.3 二维数组的定义和引用

--二维数组的定义和引用

--二维数组的定义和引用

-7.4 二维数组的赋值

--二维数组的赋值

--二维数组的赋值

-7.5 字符串的本质

--字符串的本质

--字符串的本质

-7.6 字符串操作的常用函数

--字符串操作的常用函数

--字符串常用函数

-7.7 字符串数组

--字符串数组

--字符串数组

第8章 函数

-8.1 函数概述

--函数概述

--函数概述

-8.2 有参函数

--有参函数

--有参函数

-8.3 函数参数的传递方式

--函数参数的传递形式

--函数参数的传递方式

-8.4 变量的作用域和生存期

--变量的作用域和生存期

--变量的作用域和生存期

-8.5 变量的存储类型

--变量的存储类型

--变量的存储类型

-8.6 函数的嵌套和递归调用

--函数的嵌套和递归调用

--函数的嵌套和递归调用

-8.7 函数的作用域与封装

--函数的作用域与封装

--函数的作用域与封装

第9章 指针

-9.1 指针变量的概念(上)

--指针变量的概念(上)

--指针变量的概念(上)

-9.2 指针变量的概念(下)

--指针变量的概念(下)

--指针变量的概念(下)

-9.3 指向一维数组的指针变量

--指向一维数组的指针变量

--指向一维数组的指针变量

-9.4 指向二维数组的指针变量(上)

--指向二维数组的指针变量

--指向二维数组的指针变量(上)

-9.5 指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

-9.6 动态内存分配

--动态内存分配

--动态内存分配

第10章 预处理命令

-10.1 编译预处理

--编译预处理

第11章 复杂数据类型

-11.1 用户自己建立数据类型

--用户自己建立数据类型

--用户自己建立数据类型

-11.2 定义结构体类型变量

--定义结构体类型变量

--定义结构体类型变量

-11.3 结构体变量的引用与初始化

--结构体变量的引用与初始化

-11.4 结构体数组

--结构体数组

--结构体数组

-11.5 指向结构体类型数据的指针

--指向结构体类型数据的指针

--指向结构体类型数据的指针

第12章 文件

-12.1 文件的基本概念和文件指针

--文件的基本概念和文件指针

--文件的基本概念和文件指针

-12,2 文件的打开和关闭

--文件的打开和关闭

--文件的打开和关闭

-12.3 文本文件读写

--文本文件读写

--文本文件读写

-12.4 二进制文件读写

--二进制文件读写

--二进制文件读写

一维数组的定义和引用笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。