函数中的数组参数

函数中的数组参数

1.在函数中一般用指针处理数组。

在大多数情况下, C++和C 语言一样,也将数组名视为指针。C++将数组名解释为其第一个元素的地址:
cookies == &cookies[0]

改规则有一些例外:

  1. 数组声明使用数组名来标记存储位置;
  2. 对数组名使用sizeof 将得到整个数组的长度(以字节为单位) ;
  3. 将地址运算符&用于数组名时,将返回整个数组的地址,例如&cookies 将返回一个32 字节内存块的地址(如果int 长4 字节)。

2.实例分析

例:计算一个整型数组中所有元素之和。

#include <iostream>
using namespace std;
const int ArSize = 8;
int sum_arr(Name, ArSize);
int main()
{
	int cookies[ArSize] = {1, 2, 4, 8, 16, 32, 64, 128};
	int sum = sum_arr(cookies, ArSize);
	cout << "Total cookies: " << sum << "\n";
	system("pause");
	return O;
}

// return the sum of an integer array
in sum_arr(int arr[], int n)
{
	int total = O;
	for (int i = O; i < n; i++)
		total= total+ arr[i];
	return total;
}

函数调用: int sum= sum_arr(cookies, ArSize);
其中,cookies 是数组名,而根据C++规则, cookies 是其第一个元素的地址,因此函数传递的是地址。由于数组的元素的类型为int, 因此cookies 的类型必须是int 指针, 即int* 。这表明, 另一种正确的函数头应该是这样的:int sum_arr (int * arr, int n ) // arr = array name, n = size

sum_arr( )函数将cookies 的地址赋给指针变量arr, 将ArSize 赋给int 变量n 。这意味着,程序中并没有将数组内容传递给函数,而是将数组的位置(地址) 、包含的元素种类(类型)以及元素数目( n 变量)提交给函数。如图1所示。


图1.函数中有关数组参数的信息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值