读书人

帮忙看下这个有关问题

发布时间: 2012-02-06 15:52:45 作者: rapoo

帮忙看下这个问题。
int arr[6]={0,4,3,2,5,1};
则sizeof(arr)/sizeof(int)结果为6.

但是如果有如下函数

C/C++ code
void fun(int *arr){int i;for(i=1;i<=sizeof(arr)/sizeof(int);i++){//}}

循环体却不会执行,为什么?

[解决办法]
void fun(int *arr) 传进来的arr的大小是4,

void fun(int *arr)
{
int i;
for(i=1;i<=sizeof(arr)/sizeof(int);i++)
{
cout<<sizeof(arr)<<endl;
}
运行这个就可以看到了;
你可能是要传递一个数组,但是只有一个指针信息是不够的,数组大小要再加个参数才能传进去吧
如:void fun(int *arr,int size)
//当然可能有只传一个指针就能搞定的方法,请高手们指点指点了

读书人网 >C++

热点推荐