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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  • 黑马币:114

  • 帖子:42

  • 精华:0

©   /  2016-11-10 22:08  /  1826 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>
#include <string.h>

void test(int arr [],int len);
int main()
{
        int size;
        int arr [100] = {1,2,3,4,5,2,0,7};
        size = sizeof(arr);
        printf("%d\n",size);                // 400
        test(arr,size/sizeof(int));
        return 0;
}
void test(int arr [],int len)
{                        
        printf("%d\n",sizeof(arr));                //4
        while(!arr[--len]);            //从后往前遇到非0即结束
        printf("%d\n",len+1);                //8    在下标基础上+1
}

在原基础上修改了一下。
在test()函数里面为什么sizeof(arr)变成了4,是因为arr作为形参本身就是一个指针变量,在内存中占4个字节哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马