码迷,mamicode.com
首页 > 其他好文 > 详细

数组长度计算

时间:2014-08-21 21:04:34      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:style   color   使用   os   io   strong   ar   art   

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

数组长度计算,布布扣,bubuko.com

数组长度计算

标签:style   color   使用   os   io   strong   ar   art   

原文地址:http://www.cnblogs.com/mfrbuaa/p/3928011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!