博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组长度计算
阅读量:7120 次
发布时间:2019-06-28

本文共 718 字,大约阅读时间需要 2 分钟。

     (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)。

转载地址:http://vsiel.baihongyu.com/

你可能感兴趣的文章
ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法
查看>>
PHP程序员学习路线
查看>>
伯乐在线-技术分享
查看>>
性能测 试理论篇
查看>>
IIS和tomcat共用80端口
查看>>
ES6的模块化
查看>>
Eclipse中.setting目录下文件介绍
查看>>
Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库
查看>>
php调试工具——XDebug使用
查看>>
阿里百川IMSDK--自定义群聊界面
查看>>
JavaScript:日期选择器组件的使用
查看>>
Configure swagger with spring boot
查看>>
nginx重定向规则入门
查看>>
初始化参数之memory_target
查看>>
趣题一则:寻找那扇门
查看>>
Oracle AWR报告提取方法
查看>>
好奇:WayOs破解、OEM、修复、打包等工具大全,满足大家的好奇心发下截图
查看>>
How to use kingshard building a MySQL cluster
查看>>
HibernateAnnotation入门实例
查看>>
iOS 基础介绍 1
查看>>