数组长度计算_c语言计算数组长度的函数

数组长度计算_c语言计算数组长度的函数1 sizeof 方法 sizeof 数组名 sizeof 数组类型名 说明 数组占用字节除以数组类型所占字节 结果为数组素个数 2 strlen 说明 strlen 求字符串有效长度 方法 strlen 字符数组名 结果为字符数组有效字符长度 不包含末尾的 0 注意 当数组作为函数參数传递时 数组名代表的是数组的首址 而非数组内容

(1)sizeof
方法:sizeof(数组名)/ sizeof(数组类型名)
说明:数组占用字节除以数组类型所占字节,结果为数组元素个数
(2)strlen
说明:strlen,求字符串有效长度
方法:strlen(字符数组名) //结果为字符数组有效字符长度,不包含末尾的’ /0′

注意:

当数组作为函数參数传递时,数组名代表的是数组的首址,而非数组内容,故无法使用sizeof和strlen;

所以,在传址时,应提供2个參数:1个是数组名,代表数组首地址;1个是数组元素个数,以便确定传递的次数。

比如:

#include
<
iostream
>


using

namespace
std;

void
Sum(
int
array[ ])
{
cout
<<

sizeof(array)=

<<
sizeof
(array)
<<
endl;
}

void
main()
{

int
a[ ]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
};
cout
<<

sizeof(a)=

<<
sizeof
(a)
<<
endl;
Sum(a);
}

运算结果为:

sizeof(a)=40
sizeof(array)=4

分析:

当数组作为函数參数传递时,数组名代表的是数组的首址,即指针,而非数组内容。假设传递整个数组,会导致栈溢出的。

所以在主函数中使用sizeof计算出的是准确的数组长度。而在调用函数中,因为传递的数组不再是数组本身,而是其地址,所以用sizeof计算出的,实际上是数组地址的长度,这时的sizeof(array),实际上是sizeof(int)。

编程小号
上一篇 2025-01-18 11:33
下一篇 2025-01-18 11:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/148511.html