c++中如何求数组长度

yul26 2005-12-22 05:58:50
在c++中求一个数组的长度(比如整形), 我刚开始想这么做
int array1[5];
int count = sizeof(array1)/sizeof(int);
这样写是可以得出结果得, 但是如果我把这个数组传递给一个函数
void test(int array1[]){
int count = sizeof(array1)/sizeof(int);
}

在函数里面求得的值就是1, 也就是说在函数里面数组当作指针来处理了, 不知道这问题怎么解决, 有什么方法可以方便的求出数组的长度么
...全文
4036 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuriOU 2005-12-22
  • 打赏
  • 举报
回复
传递给自定义函数,需传递一个数组参数和数组大小参数。
YuriOU 2005-12-22
  • 打赏
  • 举报
回复
无论何时,将数组作为参数传给函数,实际上只是把数组的地址传给函数
Bible_Chou 2005-12-22
  • 打赏
  • 举报
回复
没有办法判断的。
只能用参数给出大小。
useresu 2005-12-22
  • 打赏
  • 举报
回复
楼上的强

zcz0918 2005-12-22
  • 打赏
  • 举报
回复
如果你用的VC,并且用了_DEBUG,并且这个数组没有初始化,可以判断是不是0xcccccccc,呵呵
goodluckyxl 2005-12-22
  • 打赏
  • 举报
回复
不好算 因为数组不会重新完全拷贝副本传入
只会引如数据地址和类型 所以没有办法的
Rick_ang 2005-12-22
  • 打赏
  • 举报
回复
把数组做个包装,加个iterator吧...麻烦点..
dx30611 2005-12-22
  • 打赏
  • 举报
回复
如果是string类型的就好办,可以根据是否为空来判断长度
int不行
dx30611 2005-12-22
  • 打赏
  • 举报
回复
#include<iostream.h>
void test(int array1[])
{
//int count = sizeof(array1[])/sizeof(int);
//cout<<count<<endl;
cout<<array1[6];
}
int main()
{
int a[5]={1,2,3,4,5};
test(a);
}
不可能判断
我给你写了一个测试程序,即使发生了数组越界
程序还会正常的执行下去,这个函数根本不可能判断数组大小
它只能按照指针+i去寻找数

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧