编程小技巧:遍历数组

        今天跟大家分享的小技巧是关于数组遍历的。通常我们在对数组进行操作时常常会被数组的下标越界问题所困扰。当然在C语言中编译器不会去校验数组下标的边界,也就是说如果你定义了一个具有5个元素的数组,正面的操作方式在C语言中是完全合法的:

int a[5] = {0, 1, 2, 3, 4};
a[-3];
a[-2];
a[-1];
a[5];
a[6];
a[7];

        但是在其它编程语言中编程器通常会校验数组的下标是否越界。但这并不是我们今天要分享的关键内容。我们想要说的是,即使在C语言中编译器不去校验数组下标的合法性,但我们也不希望在使用时取得一个越界的下标。我们在遍历一个数组时通常的做法是这样的:

for (int i = 0; i < 5; i++)
{
    a[i] = something;
}

        这是标准的数组遍历方法,如果我们需要对这个数组循环多次,比如100次的话,我们应该如何编程程序使得数组下标不越界呢?

for (int i = 0, j = 0; i < 100; i++, j++)
{
    if (j >= 5)
    {
        j = 0;
    }
    a[j] = something;
}

        这种做法从逻辑上看没有任何问题,使用变量i来控制循环的次数,而用变量j来控制数组的下标。这样的做法虽然达到了我们的目的,但代码冗长,我们来看一下下面的处理方式:

for (int i = 0; i < 100; i++)
{
    a[i % 5] = something;
}

        巧妙的利用模运算%来对变量i取余,让i % 5的结果做为数组的下标,代码看起来简单而实用。

   

        今天的小技巧你学会了吗?


欢迎关注公众号:编程外星人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值