数组的声明和使用

数组

数组是一些相同类型的对象的集合,这些对象具有一定的顺序关系,在逻辑上是连续的,在内存中的存储上也是连续的。这些组成数组的对象叫做这个数组的元素。

数组元素用数组名加带方括号的下标表示,比如,a[2]。数组元素具有相同的类型,可以是除void之外的任意一种类型。

数组的声明

数组跟结构体、类等一样也是自定义数据类型,所以使用以前也需要先进行声明。

声明数组的时候要明确以下三点:
1.确定数组名称;
2.确定数组元素的类型;
3.确定数组的维数及每维的大小。

数组的声明形式为:数据类型 标识符[常量表达式1][常量表达式2]...;

数据类型规定了数据元素的类型,可以是整型、浮点型等基本数据类型,还可以是结构体、类等自定义数据类型。

标识符指定了数组的名称,记住,数组名是一个常量,代表着数组元素集合在内存存储的起始地址,不能进行自增自减运算。

“常量表达式1”、“常量表达式2”、…叫做下标表达式,必须是正整数。这些下标确定了数组元素的个数及每个元素在数组中的位置。

一个数组可能有多个下标,下标的个数就是数组的维数,有n个下标的数组叫做n维数组。而每个下标表达式表示该维的下标个数也就是该维的元素个数。数组元素的总个数是各个下标表达式的乘积。

还要跟大家强调下标上界和下标下界的概念,数组每一维的下标的下界是0,上界是该下标所在维的元素个数减1。

例如:int a[5];表示a是一个一维整型数组,有5个元素,下标下界是0,上界是5-1=4,所以这5个元素为a[0]…a[4],可以用来存放5个整数序列。

int b[2][3];表示b是一个二维整型数组,其中第一维有2个下标(0,1),第二维有3个下标(0,1,2)。数组元素的个数是6,可以用来存放2行3列的整数表格。对于数组b,第一个元素是b[0][0],最后一个元素是b[1][2]。

数组的使用

我们在使用数组时,只能分别访问数组的各个元素。访问哪个元素是由数组名和下标来决定的。

数组元素的引用形式为:数组名[下标表达式1][下标表达式2]...;

这里下标表达式的个数要看数组的维数,n维数组就需要n个下标表达式。

实际上,数组的每一个元素都能看成是一个同类型的变量来使用,对整型变量的操作同样也可以用于整型数组的每个元素,对类的对象的操作也同样可用于类类型的数组的每个元素。

在使用数组时要注意:
1.引用数组元素时的下标表达式可以是任意合法的算术表达式,但是结果必须是整型数据;
2.引用数组元素时的下标表达式不能超过声明数组时规定的上下界,否则会出现数组越界的问题。

给大家一个数组声明和使用的例子:

#include <iostream>
using namespace std;
int main()
{
    int a[5];
    int b[5];
    int i;
    for(i=0; i<5; i++)
    {
        a[i] = i*2;
        b[5-i-1] = a[i];
    }
    for(i=0; i<5; i++)
    {
        cout << "a[" << i << "]=" << a[i];
        cout << "  b[" << i << "]=" << b[i] << endl;
    }
    return 0;
}

在这里插入图片描述
上面的程序中声明了两个一维整型数组a和b,都有5个元素,用for循环对它们进行赋值,在引用b的元素时使用了算术表达式作为下标。

for循环中把0,2,4,6,8分别赋值给a[0]…a[4],而b的各元素恰好是a中各元素的逆序排列,即8,6,4,2,0。在这个程序中如果我们用了表达式a[5]或b[5]或者下标更大,就会有数组越界的错误。这是编程入门时非常容易犯的错误,希望大家一定注意。

如果没有数组,上面的a[5]和b[5]就需要一共定义10个变量,输出时也要写10条语句,如果有更复杂的运算那程序的复杂度可想而知,有了数组我们就可以用循环结构来简单的处理这类问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光开朗男孩

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值