接收1 d数组并在那里打印其值的函数?

时间:2014-07-19 12:34:04

标签: c linux function

我想编写一个可以接收一维数组并在那里打印其值的函数。还想知道一个函数如何接收二维数组并在那里打印它的值。

2 个答案:

答案 0 :(得分:1)

在C中,您通过指针传递数组,通常是第二个参数,包含其长度。

例如:void printArray(char * arrayStart, int length)(对于char数组) 我假设您知道如何编写一个简单的for循环来迭代数组的所有元素并打印它们。对于2D阵列,您可以使用char ** arrayStart代替。

(调用函数时,以下列方式传递数组:

char myArray[] = "some Text"
printArray(myArray, 9);

答案 1 :(得分:0)

示例代码:

    #include<stdio.h>

    void print_1D(int *arr,int m)
    {
        int i;
        for(i=0;i<m;i++)
            printf("%d ",arr[i]);
        putchar('\n');
    }

    void print_2D(int *arr[num],int m,int n) //<---observe here
    {
        int i,j;
        for(i=0;i<m;i++)
        {
            for(j=0;j<n;j++)
                printf("%d ",arr[i][j]);
            putchar('\n');
        }
    }

    int main()
    {
        int oneD[anySize1] = {2,5,67,23,32,....};   
        int twoD[anySize2][num] = { {23,17,..},{....},{....},....}; //<---and here  
        int m = anySize1,n = anySize2;
        print_1D(oneD,m);
        print_2D(twoD,m,n);
        return 0;
    }

如果2d是数组,则声明为

    int arr2D[10][20];

然后函数声明必须是,

    void print_2D(int *arr[20],int m,int n)

    void print_2D(int arr[][20],int m,int n)