当前课程知识点:C语言程序设计(上) > 数组(一) > 5.2 一维数组的定义和引用 > 5.2.1_2 数组的初始化
接下来我们再看一下
数据的
数组的初始化
数组的初始化是什么呢
就是给它赋初值
这跟简单变量的赋初值是
同样的道理
只是现在我们涉及到了
是一组数据
那这一组数据就有
你给哪些元素
需要赋初值
给哪些元素
不需要赋初值
它的基本规则是什么样子
这里边我们给了
三个
三种情况
一种情况是
给这个数组里的全部的元素
赋初值
那它就是
从前到后
按照我们给的位置
把第一个数据给了a0
而把最后一个数据
给了最后一个元素
第二种情况是
我们只给了两个数据
那它的对应情况就是
把这两个数据给了
这个数组
里边的
前两个元素
而
数组里边的其余元素
这时候它自动给赋值为0
自动赋值为0
这种情况
跟它前边两个有点不同
这种情况是说
当我们有赋初值
这样的情况的时候
数组的长度
可以省略不说
什么意思呢
是因为经常有这样的情况
比如说我现在定义的是
一个班级
或者一个学院
或者一个团体
而这里边的人数并不确定
那我这个数组定义的时候
我并不确定它定义多大的时候合适
那么根据用户的需要
你给我多少数据
我就
自动的
取这个数据的个数
为这个数组的长度
比如说像这个里边
我给了4个数据
那这个a数组就是4个元素
这几种情况
我们在
这个程序里边看一下
我们还拿出来刚才
我们说
数组定义的程序例子看一下
在这里边
我们刚才是用这种方式
scanf
在循环体里边
读进去的
给这每个元素读进去的数据
然后让它求累加和
并且输出
那我们现在要初始化的时候
我们就可以把它删掉
不用读了
让
在
程序的
前边
比如说我们给
第一种
给所有元素都初始化
我们把这几个数据都给进去
给了
5个数据
每一个元素里边
对号入座
每个元素里一个
那这时候
我们就不用
在程序运行的过程里边
进行人机交互了
我们看一下
输出
现在输出的是
这个输出
在循环体里边的那个
printf的作用
最后输出来它们的和
这跟刚才的程序是一样的
在循环体里边
输出的
这个结果
如果是我们刚才说的
我只给一部分元素
比如说我后边的两个
没有给它
那么
我们输出的时候
还是按五个去循环的
那我们前三个应该是
1 2 3
理论上
后两个元素里边应该是两个0
才是对的
那么求和
应该是6
才是对的
我们看一下
前边1 2 3
后边是两个0
那么大家这里边会
还有一种情况
我们刚才还说
如果我不给这个
数据长度
我后边给了
再给了几个数
9
那这里边现在是6个元素
那我们
给它说
小于6
然后
给了这么几个数字
然后从0
到5
是对了6个元素
去做的
我们看
是6个元素合起来
它的累加和是33
可见这个数组
此刻现在定义的是
6个元素这么长
我们并没有给它的下标
下标是因为初始化的数据而得到的
那么还有一种情况
大家会说如果
我这里边是
6
给出来了
我这个
我们刚才说如果
这里边呢
后边不给的话它就是0
那能不能说
我这个数组里边哪个数据都没给
那它就应该每一个元素里边
我没有初始化
每个元素里边是0吗
其实
应该不是的
我们看一下
如果我们都没给
把它输出来
大家看一下是多少
我们同样做累加
然后把每一个元素又输出
就是说
我们没有初始化也没有给它赋值
那这个
数组元素里边是什么呢
我们看一下
是
随机数
是随机数
而且呢
这时候求的和已经完全不准确了
大家刚才看到了一个
如果我是部分赋值
这样的一个情况
我赋了一部分值
而那另一部分没赋值
这样运行下来的话
前边赋值的部分是
你赋的那个初值
而后边是0
但是当你全部不赋值的时候
实际上
这里边是随机数
并不是说
它都是0
所以呢
这个有两个用处
一个用处说
当你要给一个数组
全部赋相同的值的时候
你可以这样做
比如说
你都要给它赋值0
比如说这个数组
100个元素这么长
你不用敲100个0
你输一个就可以了
那这时候输出的
每个数组元素里边
都是0
如果说
给一个数组统一要清零的话
这是一个非常好的办法
但是要切记
你没有给它
赋初值
又没有给它
赋数据
那这里边不是0
这里边
大家一定要
引起注意
不要有任何误解
这个程序就这样
-1.1 计算机的问题求解方法
--讨论题:数学模型
-1.1 计算机的问题求解方法--作业
-1.2 C语言与C程序
--讨论题:运算符
-1.3 C语言处理系统与程序调试运行
--例程
-1.4 程序中的人机交互
--例程
--作业讨论区
-2.1 算术运算的C程序实现
--算术混合运算.c
-2.1 算术运算的C程序实现--作业
-2.2 关系运算的C程序实现
--bukao.c
--字符比较.c
--讨论题:比较大小
-2.2 关系运算的C程序实现--作业
-第二周作业--作业
-2.3 逻辑运算的C程序实现
--计算结合性
--闰年.c
--自动购票问题.c
-2.3 逻辑运算的C程序实现--作业
-2.4 位运算的C程序实现
--讨论题:位运算
-2.5 几种很个别的运算
--讨论题
--讨论题
-2.5 几种很个别的运算--作业
-2.6 混合运算及数据类型转换
--讨论题:数据类型
-2.7 顺序结构程序实例
--Video
--三角形面积.c
--讨论题:工业产值
-2.7 顺序结构程序实例--作业
-3.1 程序中的路径选择实现
--打印学生成绩.c
--一元二次方程.c
-3.1 程序中的路径选择实现--作业
-3.2 路径中的再选择——嵌套判断
--例程
--讨论题:程序改错
-3.2 路径中的再选择——嵌套判断--作业
-3.3 复杂判断问题的C程序设计
--3.3 多级选择
--银行存款.c
--讨论题:多级选择
-3.4 多分支问题的C程序设计
--加减乘除运算.c
-3.4 多分支问题的C程序设计--作业
-3.5 GOTO的适当使用
-3.6 选择结构的程序实例
--3.6 程序展示
--计算第几天.c
--讨论题:输出奇数
--讨论题:计算税金
-3.6 选择结构的程序实例--作业
-第四周作业--作业
-4.1 需要重复执行的程序
--求和.c
--打印学生成绩.c
--统计录入速度.c
--求平均数.c
-4.1 需要重复执行的程序--作业
-4.2 至少要执行一次的循环
--n的阶乘.c
--字符分类统计.c
-4.2 至少要执行一次的循环--作业
-4.3 已知循环次数用for语句
--求和问题.c
--数列求和.c
--讨论题:循环语句
-4.3 已知循环次数用for语句--作业
-4.4 循环控制——简单循环应用
--水仙花数.c
--讨论题:死循环
--讨论题:猜数字
-循环结构的程序设计(一)--4.4 循环控制——简单循环应用
-4.5 循环的嵌套
--讨论题:程序运行
-4.5 循环的嵌套--作业
-4.6 break与continue
--最大素数.c
-4.6 break与continue--作业
-4.7 循环的综合应用
--数的排列组合.c
--鸡兔同笼.c
--打印空心字符.c
--讨论题:打印图形
--讨论题:计算闰年
-第六周作业
-第六周作业--作业
-5.1 同类有序数据处理问题
-5.2 一维数组的定义和引用
--数组定义.c
--数组初始化.c
--反向输出.c
--讨论题:对称数
-5.2 一维数组的定义和引用--作业
-5.3 一维字符串数组
--讨论题:编程
-5.4 字符串处理函数
--字符串反向.c
--字符串函数
-5.5 二维数组的定义与使用
-5.6 二维数组的输入输出
-5.6 二维数组的输入输出--作业
-5.7 二维数组的应用
--转置矩阵.c
--讨论题:修改程序
-5.8 二维字符数组
--5.8 单词排序
--单词排序.c
-5.8 二维字符数组--作业
-5.9 数组综合应用
--统计成绩.c
--统计字符次数.c
--讨论题:洗牌
-本期课程结束语
--end
-第八周编程作业
-《C语言程序设计(上)》期末复习参考
--html
-《C语言程序设计(上)》期末复习参考答案
--html