C语言的数据类型——数组

Posted 一只学习的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言的数据类型——数组相关的知识,希望对你有一定的参考价值。

1 前言

构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。构造类型主要包括数组类型、结构体类型、共用体类型。

2 数组

在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类
数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些
数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数
组、指针数组、结构数组等各种类别。

2.1 一维数组

2.1.1 一维数组的定义

在C语言中使用数组必须先进行定义。
一维数组的定义方式为:
类型说明符 数组名 [常量表达式];
其中:
类型说明符是任一种基本数据类型或构造数据类型。
数组名是用户定义的数组标识符。
方括号中的常量表达式表示数据元素的个数,也称为数组的长度。注意:不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。

2.1.2 一维数组的引用

数组元素是组成数组的基本单元。数组元素也是一种变量, 其标识方法为数组名后跟一个下标。下标表
示了元素在数组中的顺序号。
数组元素的一般形式为:
数组名[下标]
其中下标只能为整型常量或整型表达式。

2.1.2 一维数组的初始化

初始化赋值的一般形式为:
类型说明符 数组名[常量表达式]={值,值……值};
其中在{ }中的各数据值即为各元素的初值,各值之间用逗号间隔。注意:可以只给部分元素赋初值,当{ }中值的个数少于元素个数时,只给前面部分元素赋值。如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。

2.2 二维数组

二维数组定义的一般形式是:
类型说明符 数组名[常量表达式 1][常量表达式 2]

2.2.1 二维数组的引用

二维数组的元素也称为双下标变量,其表示的形式为:
数组名[下标][下标]
其中下标应为整型常量或整型表达式。

2.2.2 二维数组的初始化

二维数组可按行分段赋值,也可按行连续赋值。

  1. 按行分段赋值可写为:
    int a[5][3]={ {80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85} };
  2. 按行连续赋值可写为:
    int a[5][3]={ 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85};
    这两种赋初值的结果是完全相同的。

对于二维数组初始化赋值还有以下说明:
1)可以只对部分元素赋初值,未赋初值的元素自动取 0 值;
2)如对全部元素赋初值,则第一维的长度可以不给出;
3)数组是一种构造类型的数据。二维数组可以看作是由一维数组的嵌套而构成的。设一维数组的每个元素都又是一个数组,就组成了二维数组。当然,前提是各元素类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。C语言允许这种分解。如二维数组 a[3][4],可分解为三个一维数组,其数组名分别为:a[0] a[1] a[2],对这三个一维数组不需另作说明即可使用。这三个一维数组都有 4 个元素,例如:一维数组 a[0]的
元素为 a[0][0],a[0][1],a[0][2],a[0][3]。

2.2.2 关于二维数组名的使用

从二维数组a[3][4]的角度来看:
1) a 是二维数组名, a 代表整个二维数组的首地址,也是二维数组 0 行的首地址。 a+1 代表第一行的首地址。
2)C语言允许把一个二维数组分解为多个一维数组来处理。因此数组 a 可分解为三个一维数组,即 a[0], a[1], a[2]。每一个一维数组又含有四个元素。比如a[0]是第一个一维数组的数组名和首地址。

2.3 字符数组

用来存放字符量的数组称为字符数组。

2.3.1 字符数组的定义

如:char c[10];

2.3.2 字符数组的初始化

char c[10]={‘c’, ‘ ’, ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,’m’};

2.3.3 字符数组的引用

同前面的一维和二维数组的引用方式。

2.3.4 字符串和字符串结束标志

在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以’\\0’作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符’\\0’存入数组,并以此作为该字符串是否结束的标志。

3 数组名作函数参数

数组名可以作函数的实参和形参。

4 小结

1)数组是程序设计中最常用的数据结构。数组可分为数值数组(整数组,实数组),字符数组以及指针数组,结构数组等。
2.数组可以是一维的,二维的或多维的。
3.数组类型说明由类型说明符、数组名、数组长度(数组元素个数)三部分组成。数组元素又称为下标变量。 数组的类型是指下标变量取值的类型。
4.对数组的赋值可以用数组初始化赋值,输入函数动态赋值和赋值语句赋值三种方法实现。 对数值数组不能用赋值语句整体赋值、输入或输出,而必须用循环语句逐个对数组元素进行操作。

以上是关于C语言的数据类型——数组的主要内容,如果未能解决你的问题,请参考以下文章

C 语言数组 ( 数组类型表达 | 定义数组类型 )

在C语言里面的数据的存储不同类型的数据用同一个数组怎么做?

c语言中,定义数组和引用数组时,其数组的下标的数据类型分别允许是啥?

C语言的数据类型——数组

C语言的数据类型——数组

学习心得------C语言复杂数据类型