指针形参与引用形参的区别
函数的形参为指针时,此时将复制实参指针,但是该类形参的改变仅仅作用于局部副本。如果函数将新指针值赋给形参,主调函数使用的实参指针的值没有改变。
引用形参直接关联到其所绑定的对象。定义引用时,必须用与该引用绑定的对象初始化该引用。
计算数组元素之和的程序
方法一:将第二个形参定义为数组大小
#include <iostream>
using namespace std;
void add(const int ia[],size_t size)
{
int sum=0;
for (size_t i=0;i!=size;++i){
sum+=ia[i];
}
cout<<sum<<endl;
}
int main()
{
int j[5]={0,1,3,2,4};
add(j,sizeof(j)/sizeof(*j));
return 0;
}
方法二:传递指向数组元素第一个和最后一个元素的下一个位置的指针
#include <iostream>
using namespace std;
void add(const int *beg,const int *end)
{
int sum=0;
while (beg!=end){
sum+=*beg++;
}
cout<<sum<<endl;
}
int main()
{
int j[5]={0,1,3,2,4};
add(j,j+5);
return 0;
}