- 数组:类型相同的数据元素的集合,是C语言中的一种构造数据类型。
- 这些元素会顺序地存储在内存的某段区域。
数组类型 数组名[数组大小]
- 数组大小:决定了数组中能够存放的元素数量。
- 数组大小不能是变量,只能是字面值或字面值表达式。
- C语言编译器要求在编译期间就需要确定数组的内存大小。
- 数组大小必须是大于0的正整数。
- 初始化列表:用大括号括起来的,用于对数组进行初始化的一个值的列表,每个值之间通过逗号隔开。
- 初始化列表只能在定义数组时使用,数组定义完成后不能再使用初始化列表给数组赋值。
- 全部初始化要求初始化列表中各元素个数必须与数组大小相同。
3.2 部分元素赋初值
- 实际开发中,通常采用部分元素赋初值的方法对数组元素进行初始化,如:int arr[100]={0};
3.3 省略长度赋初值
- 定义数组时,如果后面跟有初始化列表,并且初始化列表中的值的个数就是预期的数组大小,则可省略括号中的数组大小。
4.1 求最大值、最小值、平均值
//命令行读取10个整数 //求平均值、求最大值、最小值
第一次:5,1,4,7,2,9,3,8,6,|10
第二次:1,4,5,2,7,3,8,6,|9,10
第三次:1,4,2,5,3,7,6,|8,9,10
第四次:1,2,4,3,5,6,|7,8,9,10
第五次:1,2,3,4,5,|6,7,8,9,10
第六次:1,2,3,4,|5,6,7,8,9,10
第七次:1,2,3,|4,5,6,7,8,9,10
第八次:1,2,|3,4,5,6,7,8,9,10
第九次:1,|2,3,4,5,6,7,8,9,10
- 选择列表中的最小值与未排序列表中的第一个值互换位置。
- 每次都无序列表中选择第一个元素,与有序列表中最后一个元素开始逐一比较,在比它小的元素后面插入该元素。
5.1 二维数组的概念
- 二维数组就是存放一维数组的一维数组。本质上可以理解为二维数组就是一个一维数组,只不过这个一维数组里面的每一个元素都是一个一维数组。
- 相当于一个长度为3的一维数组,这个一维数组里面每个元素的长度是:长度为4的整形一维数组。
5.2 二维数组的初始化
5.2.3 省略长度初始化
6.1 二维数组的遍历
张三 李四 王五 赵六 求每个人的平均成绩和每门课的平均成绩 //求每一科的平均成绩 //求每个人的平均成绩
- C语言中没有专门存放字符串的类型,如果期望对字符串进行保存,只能通过字符数组来保存。
- C语言中允许通过字符串字面值初始化字符数组。
- 字符串可理解为是一种特殊的字符数组,如果字符数组中存在'\0',那么它就可以当成是一个字符串,如果没有'\0',则是普通的字符数组。
//s1与s2初始化效果相同
7.3 字符串的读取与打印
- 注意:scanf读取字符串使用%s,另外数组名前面不需要加&。
- 字符串在打印时,实际上是打印第一个'\0'之前的所有字符。
- scanf在读取字符串时,遇到空格会认为字符串输入截止,不会读取空格及空格之后的内容。
- scanf不会读取空格。
- 如果想要完整读取一行内容(包括空格),可使用gets()。
- puts()在完成字符串打印之后,自动打印一个换行。
- 如果预期读取的字符串包含空格,使用gets()。
- 如果只是原原本本地输出某个字符串,使用puts()。
C语言的学习中,数组可以算是基础中比较重要的内容了,也是时常会被使用到的。下面本篇文章就来给大家介绍一下c语言中数组要如何定义,希望对大家有所帮助。
在C语言中,数组分为一维和二维
定义公式:类型说明符 数组名[常量表达式];
注意:常量表达式包括常量与符号常量,不能包含变量。
上面的示例中,定义了一个int整型数组,数组名为a,定义的数组称为数组 a。还定义了一个字符类型的数组,数组名为c,定义的数组称为数组 c。
此时数组 a 中有 5 个元素,每个元素都是 int 型变量;数组c中有 3 个元素,每个元素都是 char 型变量。
说明:数组名除了表示该数组之外,还表示该数组的首地址。数组中的元素在内存中的地址是连续分配的。
下面我们来看看C语言定义和初始化一维数组的几种形式:
示例1:整型数组的定义和初始化
示例2:字符数组的定义和初始化
定义公式:类型说明符 数组名[常量表达式][常量表达式];
上面的示例中,定义了一个3行4列的二维整型数组a和一个3行10列的二维字符数组c。
注:在定义二维数组时,可以不指定行(第一维)的长度,只指定列(第二维)的长度。第二维长度的长度不可省略。
下面我们来看看C语言定义和初始化二维数组的几种形式:
示例1:二维整型数组的定义和初始化
示例2:二维字符数组的定义和初始化
相关视频教程推荐:《》
以上就是c语言数组怎么定义?的详细内容,更多请关注php中文网其它相关文章!
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系核实处理。