您的位置:首页 > 其它

传入数组名,如何得到数组元素个数

2013-11-01 19:47 197 查看
首先,请先参考我上一篇博文《sizeof的种种孽缘》,搞清楚何为数组名退化。

方法一:把数组长度作为参数传入。

方法二:裹成结构体传入。

#include "stdio.h"
typedef struct array_box
{
int array[10];
}ARRAY_BOX;
void getData(ARRAY_BOX * arrayBox_p)
{
int count = sizeof(arrayBox_p->array) / sizeof(int);
int i;
for (i = 0; i < count; i++)
{
arrayBox_p->array[i] = i;
}
}
void main()
{
ARRAY_BOX arrayBox;
getData(&arrayBox);
}


做一个只有一个类型为数组的元素的结构体,相当于把数组用一个box包起来,占用的内存空间相同。
方法三:使用vector<T> 作为参数。
方法四:如果传入的数组是浮点数或者其他非0数组,遍历数组得出结果。
int ArrayCount(float *p)
{
int count = 0;
while(*(p++))
count ++;
return  count;
}


欢迎补充和改正!~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: