当前课程知识点:C语言程序设计 > 第7章 数组 > 7.2 一维数组的赋值 > 一维数组的赋值
同学们
大家好
今天我们来学习C语言中
一维数组的初始化和赋值
下面我们介绍
一维数组的初始化
正如变量在使用之前需要初始化一样
在定义一个数组时
我们也应该对数组的元素进行
相应的初始化工作
由于数组是一种构造数据类型
它的数据有很多个
我们应该把它的初值放在一对花括弧之内
以表达它是一组数据
而不是一个数据
在实际使用的过程当中
我们经常会遇到这样的问题
有些数组元素的值是已经确定的了
而有一些还没有确定
以便以后进行相应的计算
这时候就会出现这样的情况
我们只需要对数组的一部分元素进行初始化
而其它的元素等待日后进行相应的赋值
那么这个时候
没有初始化的元素的值
又取什么值呢
在我们的c语言系统当中
如果在定义数组时
只初始化了部分元素
而其余的没被提供初值的那些元素
都取默认的值0
如果在数组进行初始化的过程当中
你给出了数组的每一个元素的初值
这个时候
我们可以省掉方括弧当中的元素个数
系统会自动地根据你提供的初值的个数
来决定数组的长度
如果数组长度和初值的个数不相一致
那么这个时候
就不能这样做了
书上的这个例子
是一个简单的数组应用的例子
在主函数当中
定义了一个具有10个元素的一维数组
由于数组不能整体操作
所以说
需要通过一个循环
来依次地对数组的每一个元素进行赋值
注意下标的有效范围是0到9
而当数组的初始化完成时
又如何来输出数组的各个元素值呢
同样的
我们不能把整个数组一下整体输出
也需要通过一个循环
一个一个元素地输出
但是这个程序在输出数组元素时
不是按照正常顺序输出的
而是从后向前逆序地输出数组的各个元素
10个元素虽然输出的顺序是逆序的
但数组的各个元素值没有发生任何变化
如果希望把数组的元素值重新排列
逆序存放
则要另外写一段程序来实现
这在以后的章节当中会有介绍
下面我们来看下一个程序的例子
用数组来处理求解菲波纳切数列
有关这个问题
我们曾经在上一章中
利用循环程序设计解决过这类问题
我们应该来思考一下
在上一章当中
我们解决这个问题时
遇到了什么问题
遇到了什么麻烦
在上一章中
我们是通过循环来计算
菲波纳切数列的相应值的
而每一次我们只能算出当前的两个值
并把它们输出出来
而并不能保存该数列的更早的值
这样一来
我们就可能无法实现
记住每一个菲波纳切数列的值
而只能记住最后算出来的两个值
而我们现在学习了数组以后
可以重写这个程序
既能算出菲波纳切数列的每一个值
并且能把它们记下来以备后用
在程序当中
我们首先定义一个整型的数组f
具有20个数据元素
由于菲波纳切数列的第1项和第2项
是已知的都是1
因而我们在初始化时
只给出前两个元素的初值
而对于后面的其它元素值
我们通过一个循环来分别计算
程序当中的for循环的第一表达式i等于2
表示我们要从第3个元素开始计算
for循环中第二表达式
条件判断
i小于20
表示我们要计算的最后一项的下标是19
for循环的第三表达式
增量表达式
i每次自增加一
整个循环程序设计中
最重要的一部分是f[i]=f[i-2]+f[i-1];
这个赋值语句的功能是表达某一项的菲波纳切数列值
是前两项菲波纳切数列值的和
后面的for循环语句
用来输出菲波纳切数列的每一个值
其中的if语句
主要是用来控制输出的格式
使得我们输出的数据每行5个
这样一来输出格式更加整齐好看
printf语句当中f中括号i
用来表达输出其中的某一个菲波纳切数列值
那么在以后我们要想处理一个矩阵的数据
又该如何处理呢
这个问题
将引出我们的下一节:二维数组的概念
同学们
今天的内容就讲到这里
我们下节课 再见
-计算思维与计算机
--计算思维与计算机
--计算思维与计算机
--计算思维和计算机
-2.1 程序设计语言的发展及其特点和应用
--程序设计语言的特点及发展
- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤
--C语言程序的结构和编制步骤
-3.1 C语言的数据类型
--C语言的数据类型
--C语言的数据类型
-3.2 常量
--常量
--常量
-3.3 什么是变量
--什么是变量
--什么是变量
-3.4 如何进行算术运算
--如何进行算术运算
--如何进行算术运算
-3.5 赋值运算符和逗号运算符
--赋值运算符和逗号运算符
-3.6 数据类型转换
--数据类型转换
--数据类型转换
-4.1 格式化输出printf
--格式化输出
-4.2 格式化输入scanf及字符数据的非格式化输入输出
--格式化输入
-5.1 关系运算符和关系表达式
--关系运算符和关系表达式
-5.2 逻辑运算符和逻辑表达式
--逻辑运算符和逻辑表达式
-5.3 条件运算符和条件表达式
--条件运算符和条件表达式
-5.4 if语句
--if语句
--if语句
-5.5 switch语句
--switch语句
--switch语句
-6.1 while语句
--while语句
--while语句
--do-while语句
-6.2 for语句
--for语句
--for语句
-6.3 循环的嵌套
--循环的嵌套
--循环的嵌套
-6.4 break语句和continue语句
--break和continue语句
-7.1 一维数组的定义和引用
--一维数组的定义和引用
-7.2 一维数组的赋值
--一维数组的赋值
--一维数组的赋值
-7.3 二维数组的定义和引用
--二维数组的定义和引用
-7.4 二维数组的赋值
--二维数组的赋值
--二维数组的赋值
-7.5 字符串的本质
--字符串的本质
--字符串的本质
-7.6 字符串操作的常用函数
--字符串常用函数
-7.7 字符串数组
--字符串数组
--字符串数组
-8.1 函数概述
--函数概述
--函数概述
-8.2 有参函数
--有参函数
--有参函数
-8.3 函数参数的传递方式
--函数参数的传递方式
-8.4 变量的作用域和生存期
--变量的作用域和生存期
-8.5 变量的存储类型
--变量的存储类型
--变量的存储类型
-8.6 函数的嵌套和递归调用
--函数的嵌套和递归调用
-8.7 函数的作用域与封装
--函数的作用域与封装
-9.1 指针变量的概念(上)
--指针变量的概念(上)
-9.2 指针变量的概念(下)
--指针变量的概念(下)
-9.3 指向一维数组的指针变量
--指向一维数组的指针变量
-9.4 指向二维数组的指针变量(上)
--指向二维数组的指针变量(上)
-9.5 指向二维数组的指针变量(下)
--指向二维数组的指针变量(下)
-9.6 动态内存分配
--动态内存分配
--动态内存分配
-10.1 编译预处理
--编译预处理
-11.1 用户自己建立数据类型
--用户自己建立数据类型
-11.2 定义结构体类型变量
--定义结构体类型变量
-11.3 结构体变量的引用与初始化
-11.4 结构体数组
--结构体数组
--结构体数组
-11.5 指向结构体类型数据的指针
--指向结构体类型数据的指针
-12.1 文件的基本概念和文件指针
--文件的基本概念和文件指针
-12,2 文件的打开和关闭
--文件的打开和关闭
--文件的打开和关闭
-12.3 文本文件读写
--文本文件读写
--文本文件读写
-12.4 二进制文件读写
--二进制文件读写
--二进制文件读写