C++中使用函数显示数组及用const保护数组

C++中使用函数显示数组及用const保护数组

创建显示数组内容的函数很简单。只需将数组名和填充的元素数目传递给函数,然后该函数使用循环来显示每个元素。然而,还有另一个问题–确保显示函数不修改原始数组。除非函数的目的就是修改传递给它的数据,否则应避免发生这种情况。使用普通参数时,这种保护将自动实现,这是由于C++按值传递数据,而且函数使用数据的副本。然而,接受数组名的函数将使用原始数据,这正是fil_array()函数能够完成其工作的原因。为防止函数无意中修改数组的内容,可在声明形参时使用关键字const(参见第3章):

void show_array(const double arl],int n);

该声明表明,指针ar指向的是常量数据。这意味着不能使用ar修改该数据,也就是说,可以使用像ar[0]这样的值,但不能修改。注意,这并不是意味着原始数组必须是常量,而只是意味着不能在 show_amay()函数中使用 ar 来修改这些数据。因此,show_array()将数组视为只读数据。假设无意间在 show_array()函数中执行了下面的操作,从而违反了这种限制:

ar[0] += 10;

编译器将禁止这样做。例如,BorlandC++将给出一条错误消息,如下所示(稍作了编辑):

Cannot modify a const object in function
    show array(const double *int)

其他编译器可能用其他措词表示其不满。
这条消息提醒用户,C++将声明const double ar[]解释为const double * ar。因此,该声明实际上是说ar指向的是一个常量值。结束这个例子后,我们将详细讨论这个问题。下面是show_array()函数的代码:

void show array(const double arl],int n)
{
    using namespace std;
    for(int i=0;isn; i++)
    {
        cout << "Property #" <<(i + 1)<< ":$";
        cout << ari]<< endl;
    }
}

对C++感兴趣的朋友点这里:C/C++课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值