C++函数和数组

函数和数组

C++和C语言一样将数组名视作指针。对于遍历数组而言,使用指针加法和数组下标时是等效的。
如:

arr[i]==*(ar+i);
&arr[i]==ar+i;

C++数组作为参数函数的声明:

1:int sum_arr(int* _arr,int n);
2:int sum_arr(int _arr[],int n);

1和2在使用数组作为参数时是等效的。
将数组名和指针对应是一件非常好的事情,可以节省复制整个数组所需要的时间和内存。如果数组很大,则使用拷贝的系统开销会很大,程序需要更多的计算机内存。另外,如果使用原始数据,增加了破坏原始数据的风险。
C++使用数组区间的函数:
C++包含数组的函数可以使用两个指针来指定数组的区间,用来访问数组中的元素:

#include <iostream>
const int ArSize = 8;
int sum_arr(const int* begin,const int* end);

int main()
{
	using namespace std;
	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 = total + *pt;
	}
	return total;
}

程序通过循环递增操作来更新指针pt,使之指向下一个元素,只要pt不是end,这一过程将一直执行下去,直至循环结束。
该程序在VS2017的输出结果为:

Total cookies eaten: 255
First three eaters ate: 7 cookies.
Last four eaters ate: 240 cookies.

C:\Users\Administrator\Desktop\MyPro\C++_Pro\Demo_03\Debug\Demo_03.exe (进程 8928)已退出,返回代码为: 0。
若要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口...

[cookies,cookies+ArSize]指定的是整个数组的元素数目。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值