传递给函数

时间:2018-03-09 09:20:13

标签: c parameter-passing sizeof

此代码从用户获取输入并将它们简单地存储在数组中。然后将数组传递给函数然后打印出来。问题是当我在main()中然后在函数中检查数组的大小时( )它们是不同的。请检查我提供的输出图像链接,以清楚地了解我在说什么。 int的大小是4个字节。 Dev-C ++是IDE使用的,它使用TDM-GCC 4.9.2 64位编译器。有人可以澄清这里发生了什么吗?

    #include<stdio.h>
    int function(int formal[]);
    main()
    {
        int input[10],loop,limit;
        printf("Enter limit:");
        scanf("%d",&limit);
        for(loop=0;loop<limit;loop++)
        {
            scanf("%d",&input[loop]);
        }
        printf("Size of input array:%d\t",sizeof(input));
        function(input);
    }
    int function(int formal[])
    {
        int loop;
        printf("Size of parameter array:%d\n",sizeof(formal));
        for(loop=0;loop<5;loop++)
        {
            printf("%d\n",formal[loop]);
        }
    }

输出:[1]:https://i.stack.imgur.com/LqHiS.png

0 个答案:

没有答案