A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ifo 中级黑马   /  2014-10-29 01:10  /  611 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在遍历数组的时候,只把数组名作为函数的参数传递过去,必然会丢失数组的长度,在计算数组长度的时候造成错误,使遍历不能完成。解决的办法是:在传递数组名的同时,把数组长度也传过去,这样就不会为遍历数组造成麻烦。
void print_arr(int x[],int len){
    //x是一个地址,在内存中,地址占用8个字节
//    printf("%d\n",sizeof(x));
//    int len = sizeof(x)/sizeof(int);
    printf("x = %d\n",len);
    //遍历,打印
    for (int i=0; i<len; i++) {
        printf("%d\t",x[i]);
    }

}
int main(int argc, const char * argv[])
{
    int a[]={2,3,3,5,6,34,56,67};
   int len = sizeof(a)/sizeof(int);
    printf("len = %d\n",len);
    print_arr(a,len);
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马