当前位置:首页 > 技术文章 > 正文内容

C语言一维数组,到底是什么一回事?细细道来

douba31个月前 (08-01)技术文章8

一维数组定义和使用

一维数组的定义格式如下:

数据类型 数组名 [常量值];

格式分析:

(1) 数据类型,表示要在数组中,存放数据的类型。例如,要存放整数值,可以是int类型;要存放字符,可以是char类型;

(2) 数组名,是数组的名称,必须是合法的标识符;就是数组变量的名称,与普通的变量名一样,必须是合法的标识符。

(3) 常量值,表示数组的长度,就是数组的元素个数;注意:它是“常量”的属性,例如30这样的常整数。不可以是变量。

那么,对于上面引出问题的例子,我们需要存放{100, 88, 99, 200, 600, 800}这样的一组数据,可以分析:

(1) 存放数据的类型是整数值,所以,元素的数据类型是int类型;

(2) 有6个数值,所以,数组需要6个元素来存放这些数据,所以,数组的长度是6;

(3) 选择一个合法的标识符作为数组名,我们可以定义数组名为 array;

那么,我们可以定义数组:

int array[6];

此时,我们就定义了一个数组,有:

(1) 数组名是array;

(2) 数组中存放元素的类型是int类型;

(3) 数组中存放元素的个数是6个;

此时,我们定义了数组,那么,要怎么样使用数组中的元素?把{100, 88, 99, 200, 600, 800}这样的一组数据存放到数组中?

那么,我们就需要学习:数组元素的使用

数组元素使用的格式如下:

数组名[下标];

使用格式说明:

(1) 数组名,就是定义数组时候的数组名;

(2) 下标只能够是整数值,可以是6这样的常整数值,也可以是 int i = 6; 这样的整数变量。

(3) 下标取值的范围是从0开始,如果数组的长度是N个元素,那么,下标取值的最大值是N-1,所以,数组的长度是N个元素,那么,下标取值范围是(0 ~ N-1)。

假设我们定义了一个数组,数组的名称是array,在数组中存放了{100, 88, 99, 200, 600, 800}这样的一组数据,那么,数据在内存中存放的格式如下:

100

88

99

200

600

800

此时,数组名指向内存块的首地址,然后,下标从0开始获取元素,就有:

array[0] --- 表示第0个元素,即100这个数值;

array[1] --- 表示第1个元素,即88这个数值;

array[2] --- 表示第2个元素,即99这个数值;

array[3] --- 表示第3个元素,即200这个数值;

array[4] --- 表示第4个元素,即600这个数值;

array[5] --- 表示第5个元素,即800这个数值;

array[6] --- 表示第6个元素,异常,数组越界;因为,不存在第6个元素;

可以看到,下标从0开始,然后数组名 array和下标,就可以访问数组中指定的元素。注意:array数组的长度是6,所以,下标的合法范围是0 ~ 5;对于array[6]元素,是不存在,这样访问数组,会导致内存溢出,程序溢出。所以,在使用数组的时候,必须特别注意数组下标的使用,不要访问数组越界。

那么,我们编写一个测试例子,把{100, 88, 99, 200, 600, 800}这组数据存放到一个数组中,程序测试例子如下:

深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂

程序运行的结果如下:

深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂

可以看到,我们把一组数据存放到数组中,然后,再访问数组中的每一个元素,打印输出。例如 array[2] = 99;就是给下标是2的元素赋值;下标可以是一个变量,例如,输出元素的时候,是访问array[i]元素,此时,下标是int类型的变量。

相关文章

ToDesk Linux更新发布:新增摄像头、网络诊断

ToDesk更新来了!最新版Liunx-4.3.0.0针对Linux用户上新了摄像头、网络诊断等多种实用功能,大幅提升了用户使用体验。并且ToDesk全面支持国产三大操作系统——麒麟、统信、方德,为L...

Linux下免交互模式的远程管理实现

通过linux脚本及expect可以不交互进行linux服务器的批量管理。一、远程传输文件cat send_file.sh#!/usr/local/bin/expect -f## 输入两个参数set...

Linux系统信息查看命令总结(linux系统信息查询)

概述当线上系统出现问题的时候,我们经常需要快速的获取系统信息、检查系统运行状态来方便定位问题,系统信息包括系统版本、内核等,运行状态包括内存是否被耗尽,磁盘是否还有剩余空间,网络带宽是否够用等等,总结...

如何查看linux后台运行的进程?如何查看后台运行进程的状态?

linux系统中挂在后台的进程,如何能够被运维人员知道呢?以及挂在后台的进程当前状态是怎样的?是否可以继续执行?如何杀死一个在后台挂起的进程?后台进程可以通过‘&’符号或nohup命令,让程序进入...

Ftp、 Samba、NFS服务器的区别(ftp smb nfs哪个快)

Ftp、Samba、NFS服务器的对比情况根据使用的方式来看可以分为3种类别的文件服务器:ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器。1:ftp的客户可以是任意平台2:samb...

Linux基本命令(Linux基本命令聪简单到复杂)

一、基本命令1. pwdxx@admin1, 中xx表示用户登录的名字,admin1表示主机名, test表示当前工作目录,pwd (present working directory): 查看当前...