《C++ Prime Plus 第七章》—数组、函数、指针初步

我们经常会看到将一维数组的名字,即数组首地址作为参数传入函数,从而实现对数组进行一些简单操作,比如数组的求和;此外我们还有另一种给函数提供所需信息的方法,即指定元素区间,这可以通过传递两个指针来完成:一个指针标识数组的开头,另一个指针标识数组的尾部。将区间传递给函数将告诉函数应当处理那些元素,这样处理数组将更加灵活。

例如给出下例:

#include <iostream>
//#include<cstdio>
using namespace std;
const int arsize=8;
int sum_arr(const int *begin,const int *end);
int main()
{
    int cookies[arsize]={1,2,4,8,16,32,64,128};
    int sum=sum_arr(cookies,cookies+arsize);
    cout<<"Total cookies eaten: "<<sum<< endl;
    sum=sum_arr(cookies,cookies+3);
    cout<<"First three eaters ate "<<sum<<" cookies.\n";
    sum=sum_arr(cookies+4,cookies+8);
    cout<<"Last four eaters ate "<<sum<<" cookies.\n";
    return 0;

}
int sum_arr(const int *begin,const int *end)
{
    const int *pt;
    int total=0;
    for(pt=begin;pt!=end;pt++)
    total+=*pt;
    return total;
}

程序说明

        请注意程序中的sum_arr()函数中的for循环:

for(pt=begin;pt!=end;pt++)
    total+=*pt;

它将pt设置为指向要处理的第一个元素(begin指向的元素)的指针,并将*pt(元素的值)加入到total中。然后,循环通过递增操作来更新pt,使之指向下一个元素。只要pt不等于end,这一过程就将继续下去。当pt等于end时,它将指向区间的最后一个元素后面的位置,此时循环将结束。

其次,请注意不同的函数调用是如何指定数组中不同的区间的:

     int sum=sum_arr(cookies,cookies+arsize);  // all elements
     ...<span style="font-family: Arial, Helvetica, sans-serif;">  </span>
<pre name="code" class="cpp" style="font-size: 14px;">     sum=sum_arr(cookies,cookies+3);           // first 3 elements
     ...

 
<pre name="code" class="cpp" style="font-size: 14px;">     sum=sum_arr(cookies+4,cookies+8);         // last 4 elements
...
 

通过这个简单的例子,我们了解到使用数组区间的函数以及指针的简单应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值