请大家看一下这个显示数据元素的程序哪里错了?

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:24:20
#include <iostream.h>
void display(int *b)
{
int j=0,i=sizeof(b)/sizeof(*b);
while(j!=i)
{
cout<<*(b+j)<<endl;
++j;
if(j!=i)
cout<<" "<<endl;

}
}
void main()
{
int a[]={1,2,3,4,5,6,7,8};
cout<<sizeof(a)/sizeof(*a)<<endl;
display(a);
}
为什么运行出来只显示了数组的第一个元素1,其他的都无法显示呢?

对参数的指针取sizeof,得到的结果是同类数据的指针的size,不能得到你期望的数组的大小。
对于display函数,你需要追加一个count信息作为参数,来达到你期望的效果