当前位置:网站首页>小甲鱼C(第六章数组1、2)
小甲鱼C(第六章数组1、2)
2022-07-28 05:28:00 【W.934】
数组的概念
数组:具有相同类型的数据组成的序列,是有序集合。
数组中的每个数据称:数组元素,下标元素
数组元素 由其所在的位置序号(称数组元素的下标)来区分。
用数组名与下标 可以用统一的方式来处理数组中的所有元素,从而方便地实现处理一批具有相同性质数据的问题。
注意:数组元素有序不是指元素大小顺序。
一维数组的定义和引用
一维数组的定义方式:在C语言中使用数组必须先进行定义。
类型说明符 数组名 [常量表达式];
例如:int a [10] 它表示定义了一个整形数组,数组名为a,此数组有10个元素,10个元素都是整型变量。
需要注意的是:
一、类型说明符是任一种基本数据类型或构造数据类型。对于同一个数组,其所有元素的数据类型都是相同的。
二、数组名是用户定义的数组标识符。书写规则应符合标识符的书写规定。
三、方括号中的常量表达式表示数据元素的个数,也成为数组的长度。
四、允许在同一个类型说明中,说明多个数组和多个变量。例如:int a,b,c,d,k1[10],k2[20];
一些常见的错误:
①float a[0]; //数组大小为0没有意义
②int b(2)(3); //不能使用圆括号
③int k,a[k]; //不能用变量说明组数大小
一维数组元素的引用
数组元素是组成数组的基本元素。数组元素也是一种变量,其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。
数组元素的一般形式为:数组名[下标] (下标可以是整型常量或整型表达式)
例如:a[0]=a[5]+a[7]-a[2*3] a[i+j] a[i++] 都是合法的数组元素
一些注意事项:
数组元素通常也称为下标变量。必须先定义数组,才能使用下标变量。在C语言中只能逐个地使用下标变量,而不能一次引用整个数组。
下面的写法是错误的:printf("%d",a);
定义数组时用到的“数组名[常量表达式]”和引用数组元素时用到的“数组名[下标]”是有区别的。
例如:int a[10]; //定义数组长度为10
t=a[6]; //引用a数组中序号为6的元素。此时6不代表数组长度。
一维数组的初始化
给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可采用初始化赋值和动态赋值的方法。
数组初始化赋值是指在数组定义时给数组元素赋予初值。数组初始化是在编译阶段进行的。这样减少运行时间,提高效率。
注意:之前用赋值语句或输入语句也可给数组数指定初值,是在运行时完成。
初始化赋值的一般形式为:
类型说明符 数组名[常量表达式]={值,值,......值};
一维数组的初始化实现方法有如下几种:
(一)在定义数组时对数组元素赋以初值,例如:int a [10]={0,1,2,3,4,5,6,7,8,9};
将数组元素的初值依次放在一对花括弧内。经过上面的定义和初始化之后,a[0]=0,a[1]=1,a[2]=2,......,a[8]=8,a[9]=9。
(二)可以只给部分元素赋值,例如:int a [10]={0,1,2,3,4};
定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素为0。
(三)如果想使一个数组中全部元素为0,可以写成int a[10]={0,0,0,0,0,0,0,0,0,0};或int a [10]={0};
(四) 在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。
例如:int a [5]={1,2,3,4,5};也可以写成:int a [ ]={1,2,3,4,5};
在第二种写法时,花括弧中有5个数,系统就会据此自动定义a数组的长度为5.但若数组长度与提供初值的个数不相同,则数组长度不能省略。例如,想定数组长度为10,就不能省略数组长度的定义,而必须写成int a [10]={1,2,3,4,5};只初始化前5个元素,后5个元素为0。
(五)动态赋值
边栏推荐
- Ubuntu MySQL setting remote access permissions
- Si Han talks about the professional development of testers
- Pku-2739-sum of constructive prime numbers
- Shell script - sort, uniq, TR, array sort, cut, Eval command configuration
- What's a good gift for Tanabata? Niche and advanced product gift recommendation
- Applets: WSX scripts
- raid磁盘阵列
- Ubuntu18.04搭建redis集群【学习笔记】
- Installation and configuration of unit test framework jest with typescript
- shell脚本——编程条件语句(条件测试、if语句、case分支语句、echo用法、for循环、while循环)
猜你喜欢

Technology sharing | do you know the functions of the server interface automated testing and requests library?

Esxi community nvme driver update v1.1

Shell script - "three swordsmen" awk command

How to describe a bug and the definition and life cycle of bug level

Clock tree analysis example

技术分享 | 如何模拟真实使用场景?mock 技术来帮你

Applet navigator cannot jump (debug)

Technology sharing | send requests using postman

cocos2d-x 学习笔记——瓦片地图TiledMap

What's a good gift for Tanabata? Niche and advanced product gift recommendation
随机推荐
MySQL master master
Technology sharing | do you know the functions of the server interface automated testing and requests library?
Esxi community network card driver
MySQL installation and use
Technology sharing | how to simulate real use scenarios? Mock technology to help you
Custom component -- data listener
Insertion and deletion of nodes in linked list
什么是线性表?
Which brand of air conduction earphones is better? These four should not be missed
Shell script - regular expression
Cocos2d-x learning notes Tile Map tiledmap
What is a linear table?
shell脚本——“三剑客”之awk命令
Esxi community network card driver updated again
Test interview questions collection (V) | automated testing and performance testing (with answers)
NFS 共享存储服务
Custom component -- communication between parent and child components
Hdu-1159-commonsubsequence (LCS longest common subsequence)
C language memcpy library functions and the role of memmove
技术分享 | 接口测试常用代理工具