栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

函数中的数组参数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

函数中的数组参数

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

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

改规则有一些例外:

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

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

#include 
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.函数中有关数组参数的信息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928376.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号