当前课程知识点:高级语言程序设计 > 数组 > 5.2 一维数组的定义和初始化 > 一维数组的定义和初始化
大家好
本节课我们来学习一维数组的定义和初始化
在本节课我们要学习三个内容
第一个是一维数组的定义
第二个一维数组元素的引用
第三个一维数组的初始化
我们先来看看一维数组定义的语法
一维数组定义的一般形式是这样的
类型名
空格 这里的空格可以多个
标识符
然后跟中括号
中括号里面是整型常量表达式
如int a[100];
这里int是数组中元素的类型
也就是每个数组元素都是int类型
每一个数组元素相当于一个int型的变量
a是数组名
100是数组中元素的个数
也称为数组的长度
也就是说刚才的数组a定义了100个元素
分别为a[0] a[1] a[2] a[3]
一直到a[99]
它们在内存中的存储示意如下
看到这个图
注意到它不像我们前面所学的
基本类型的一些变量
如果有多个的话它们在内存中是随机存储的
在这数组中这100个元素是连续存放的
一维数组已经定义了
那么我们怎么样用这个一维数组呢
通常我们是通过对数组元素的引用来实现的
一维数组元素的引用
是数组名[整型表达式]
注意中括号里面的整型表达式的值
我们称为下标
也就是说下标可以是任何整型表达式的值
C语言的下标取值是有限制的
那么它的下标从0开始的
最大可用下标
通常是定义时数组长度减去1
比如int a[10];
如果是这样定义的话
那么定义后最小的下标是0
最大可用下标是9
10个数组元素
就是a[0] a[1] a[2] a[3] a[4]
a[5] a[6] a[7] a[8] a[9]
我们注意观察一下
我们会发现刚才的这些元素的名称
除了中括号里面的值不同外
其它是一样的
这为我们遍历整个数组
也就是把数组中每一个元素都访问
批处理数组元素打下了基础
我们来看看
怎么批处理数组
如果我们要使用数组的所有元素
或者说绝大多数元素
我们可以通过遍历下标来访问
如有定义 int a[10];
下标值由小到大
遍历访问数组元素的实现方法是这样的
for(i=0;i<10;i++)
然后我们去访问a[i]
可以给ai赋值
也可以给ai进行运算等等
下标值由大到小
那要怎样遍历数组元素
它是这样的
for(i=9;i>0;i--)
访问a[i];
一维数组的初始化
在定义数组时给数组元素赋值
我们称为初始化
可以给每个元素赋值
我们把这个称为全部初始化
也可以只给一维数组中的部分元素赋值
我们称为部分初始化
比如int a[10]={1,2,3,4,5,6,7,8,9,10};
那么这是全部初始化
我们把1送给了第一个元素a[0]
2送给第二个元素a[1]
3送给a[2]
4赋值给a[3]
以此类推
5赋值给a[4]
6赋值给a[5]
7赋值给a[6]
8赋值给a[7]
9赋值给a[8]
10赋值给a[9]
这是我们的全部初始化
一维数组的全部初始化
再看一个例子
int f[20]={1,1};
这个就是部分初始化
那么数组f定义了20个元素
这里只给了两个值
那么第一个值是给了第一个元素f[0]
第二个值给了数组中第二个元素f[1]
这里面区分第一个和第二个
是看花括号里面的逗号
第一个逗号前的就是第一个
第二个逗号前的值就是第二个
这里要特别注意的是
一维数组全部初始化时
数组的长度是可以缺省的
因为在花括号里面我们列举了
所有元素取的值
那么值的个数和元素的个数是一样的
因此我们数组定义长度就可以省略
因为值的个数就是元素的个数
比如刚才这个例子
int a[10];
中括号里面的10我们就可以不要
就是int a[]={1,2,3,4,5,6,7,8,9,10};
显然部分初始化时
数组长度就不能省略
那么本节课内容我们就讲完了
那么在结束这节课之前
我们总结一下本节课我们学的内容
一是一维数组的定义
它的定义是这样的
类型名 标识符[整型常量表达式];
第二个就是一维数组的元素的引用
那么可以单个引用
也可以利用循环语句来一次把数组中
所有的元素或者大多数元素都访问到
第三个就是一维数组的初始化
注意全部初始化和部分初始化的区别
好了本节课就讲到这里
谢谢大家
-1.1 计算机程序和计算机语言
-1.2 C程序的构成
--C程序的构成
-1.3 C语言编辑、编译、运行(VC++2010学习版)
-练习题
-2.1 变量的定义和使用
--变量的定义和使用
-2.2 数据类型
--数据类型简介
--整型数据
--实型数据
-2.3 格式输出和格式输入
-2.4 运算符和表达式
--运算符和表达式
-2.5 结构化程序设计入门
-练习题
-3.1 为什么要用选择结构解决问题
-3.2 如何正确表示选择结构中的条件
-3.3 用if语句及if语句嵌套实现选择结构
-3.4 用switch语句实现选择结构
-练习
-4.1 循环的引入
-4.1 循环的引入--作业
-4.2 用while语句实现循环
-4.3 用do-while语句实现循环
-4.4 用for语句实现循环
-- 用for语句实现循环
-4.4 用for语句实现循环--作业
-4.5 何时需要用循环的嵌套
-4.6 如何提前终止循环和提前结束本次循环
-习题--作业
-5.1 数组类型的引入
--数组类型的引入
-5.2 一维数组的定义和初始化
-5.3 一维数组的使用
--一维数组的使用
-5.4 二维数组的定义和初始化
-5.5 二维数组的使用
--二维数组的使用
-习题--作业
-6.1 什么是指针
--什么是指针
-6.2 指针类型及相关概念
-6.3 指针变量的定义、赋值与使用
-6.4 指针的运算
--指针的运算
-6.5 指针与一维数组
--指针与一维数组
-6.6 指针的指针
--指针的指针
-6.7 指针与二维数组
--指针与二维数组
-习题--作业
-7.1 为什么要自定义函数
-7.2 函数的定义
--函数的定义
-7.3 函数的调用
--函数的调用
-7.4 函数参数的传递
--函数参数的传递
-7.5 函数的嵌套调用和递归调用
-7.6 变量的作用域和存储类型
-习题--作业
-8.1 字符串的存储及输入输出
-8.2 系统字符串处理函数
-8.3 自定义字符串处理函数
-习题--作业
-9.1 结构体类型的定义
--结构体类型的定义
-9.2 结构体变量及指针变量的定义及使用
-9.3 结构体变量和指针变量作函数的参数
-9.4 结构体数组的定义和使用
-9.5 共用体类型和枚举类型
--共用体和枚举类型
-习题--作业
-动态内存分配--习题
-习题--作业