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

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

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

下一节:二维数组的赋值

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

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

同学们

大家好

今天我们来学习C语言中

二维数组的定义和引用

这节课我们要来介绍二维数组的定义和引用

首先

为什么需要定义二维数组呢

在上一节当中

我们学习了如何定义一维数组

一个简单变量

相当于几何中的一个点

我们可以通过定义一个一维数组

用这些点构成一条线

那我们如何再用线构成面呢

道理很简单

我们可以这样来看待

一个面是由若干条线的序列构成的

其中的每一条线

就是这个面的一个元素

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

因而在几何空间里面的二维结构

平面可以认为是二维的点构成的

一个面由若干条线构成

而每一条线又有若干个点构成

下面我们来看一下二维数组定义的基本语法

二维数组定义的语法和

一维数组定义的语法基本相同

只是比一维数组多一个常量表达式

用来表达它是二维结构的

其中的第一个常量表达式

用来表达一个面一共由几条线组成

而第二个常量表达式

用来表达每一条线又是由几个点组成

如果和几何进行对照的话

那么第一常量表达式

表达的数值

相当于我们二维结构里的行数

第二常量表达式中的数值

用来表达每一行元素的列数

如图中分别定义了两个数组

其中的数组a

是3行4列的浮点型数组

数组b

是5行10列的浮点型数组

在定义时

要注意一个习惯

在c语言中

每一维的元素个数

要放在不同的方括号当中

我们可以参照二维几何概念

把一个二维数组看作

是一种特殊的一维数组

它的每一个元素是另外一个一维数组

例如

a[3][4]

这个时候

我们可以把a看作

是一个具有三个元素的一维数组

也就是它有三行

而它的每一个元素

又是由包含4个元素的一维数组构成的

也就是它的每一行有4列

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

在上一节当中我们介绍过

一维数组在内存当中是依次存放的

依此类推

既然一个二维数组是由若干个

以一维数组为元素的元素构成的

我们也应该依次存放它的每一个元素

在这里

这个元素是一行

对应一个一维数组

也就是

先顺序存放它的第1行的所有元素

然后再存放它的第2行所有元素

依此类推

直到把它的所有行存放完为止

在这里

希望同学们不要把二维数组看成什么特殊的数组

我们完全可以把二维数组看成是

一个元素特别的一维数组

这样大家就很容易理解二维数组的存放方式了

那么有了二维数组的基础以后

又如何定义多维数组呢

这一点可以参照几何常识

由若干个点构成一条线

再由若干条线构成一个面

再进一步

由若干个面构成一个立方体

同样的思维方式

我们可以把一个三维数组看作是一个一维数组

它的每一个元素是一个二维数组

依此类推

这样

我们可以很容易地把数组推广到更多维

下面我们来介绍二维数组的引用

二维数组的引用方式为

数组名

方括弧

下标表达式一

方括弧

下标表达式2

其中的下标表达式1

用来表达行的序号

而下标表达式2

用来表示列的序号

和一维数组的元素的引用类似

区别在于

我们需要提供两个下标

对应到二维数组

其它方面

和一维数组情况是一样的

注意引用二维数组元素时

两个下标要用不同的方括弧分别表达

在这一点上

类似于二维数组的定义

在引用二维数组元素时

我们应该注意

每一个下标值

应该在以定义的数组相应维度大小的范围内

不要超出数组的边界

这一点c语言的编译器是不会做任何处理的

只有我们程序员自己进行相应的检查

下面我们来介绍一下二维数组的初始化

如上一节所述

一维数组在使用之前需要进行初始化

同样

二维数组在使用之前

也应该进行相应的初始化工作

二维数组初始化的方法和

一维数组初始化的基本方法是一致的

第1种方法

我们可以依次地初始化它的每一个一维数组元素

每一个一维数组元素用花括弧括起来

而一维数组元素的内部初始化

同一维数组的初始化方法

第2种方法

我们可以按照二维数组在内存中存放的顺序

依次提供二维数组的每一个元素的初始值

第3种方法

我们在上两种方法当中

对数组的一维数组元素

进行初始化时

可以只初始化它的一部分元素

第4种方法

如果对二维数组的全部元素都赋予了初值

则定义该数组时

第1维的长度可以不指定

但是第2维的长度是不能省略的

可能同学们会问

为什么不能省略第2维的长度呢

你们可以这样试想一下

如果不给第2维的长度

你如何来确定二维数组的结构呢

一个二维数组的每一行的元素个数不确定

又如何来确定这个二维数组一共有几行呢

因此

只有确定了二维数组每一行元素的个数

我们才可能最终确定这个二维数组的行数及结构

同学们

今天的内容就讲到这里

我们下一节课再见

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 二进制文件读写

--二进制文件读写

--二进制文件读写

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

也许你还感兴趣的课程:

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