数组和C语法

问题描述 投票:0回答:2

我有一些没有编译的代码,我一直在努力修复它,我只是一个初学程序员,我觉得我的基础知识有所下降,但由于某些原因我得到的错误就像我忘记了放一个分号和东西,不知道为什么,或者在哪里,所以如果有人愿意校对我的工作,我将不胜感激。

错误似乎发生在主程序中每个语句的末尾,错误代码表示我忘记了分号,但我认为我有所有这些错误,所以我不太明白我的错误。

    #include <stdio.h>
    #include <stdlib.h>

    void printArrayValues(int array[], int num);


    void fillWithIndex(int array[], int num);


    int main(int argc, char * argv[])
    {
        int arr1[] = { 23, 21, 20, 27 };
        int arr2[] = { 5, 7, 9, 11, 13 };

            // Print the values in the first array, fill that array with
            // its indexes, and then print the values of the array
            // again.

            printArrayValues(arr1[], 4);
            fillWithIndex(arr1[], 4);
            printArrayValues(arr1[], 4);

            // Do similarly for the second array.

            printArrayValues(arr2[], 5);
            fillWithIndex(arr2[], 5);
            printArrayValues(arr2[], 5);

            return 0;
    }

    void printArrayValues(int array[], int num)

    {
        int i = 0;

        while (i < num)
        {
            printf("%d\n", array[i]);
            i++;
        }

        return;
    }


    void fillWithIndex(int array[], int num)
    {
        int i = 0;

        while (i < num)
        {
            array[i] = i;
            i++;
        }

        return;
    }
c arrays syntax
2个回答
3
投票

1.从main()调用函数时,不要使用[]到数组。 2.如果你没有在命令行中获取值,那么只使用int main()

int main()
    {
        int arr1[] = { 23, 21, 20, 27 };
        int arr2[] = { 5, 7, 9, 11, 13 };

            // Print the values in the first array, fill that array with
            // its indexes, and then print the values of the array
            // again.

            printArrayValues(arr1, 4);
            fillWithIndex(arr1, 4);
            printArrayValues(arr1, 4);

            // Do similarly for the second array.

            printArrayValues(arr2, 5);
            fillWithIndex(arr2, 5);
            printArrayValues(arr2, 5);

            return 0;
    }

1
投票

数组衰减指向其第一个元素。两个函数的第一个参数都需要int *类型的参数。在函数调用中,您应该像这样传递第一个参数

printArrayValues(arr1, 4);
fillWithIndex(arr1, 4);
printArrayValues(arr1, 4);

// Do similarly for the second array.

printArrayValues(arr2, 5);
fillWithIndex(arr2, 5);
printArrayValues(arr2, 5);

请注意,在函数调用中不需要下标运算符。空下标运算符仅在用作函数声明/定义中的参数或使用初始化列表声明时才有效。

© www.soinside.com 2019 - 2024. All rights reserved.