我可以在C中使用二维数组的单行或列作为一维数组吗?

时间:2014-12-04 00:51:20

标签: c arrays function multidimensional-array parameters

我试图将一个二维数组的单行传递给一个函数。但是,我不想将其内容复制到单独的1-d数组中,并使用后者作为参数,而是使用行(或列)本身。有没有办法在C中做到这一点?

1 个答案:

答案 0 :(得分:2)

这是一个例子。

#include <stdio.h>

void printArray(int* array, int size) {
    // Print the contents of 1-D array.
    for(int i = 0; i < size; i++) {
        printf("arr[%d]: %d\n", i, array[i]);
    }
}

int main() {
    // Create a 2-D array consisting of two 1-D arrays as its elements:
    // - First array elements: 0, 1
    // - Second array elements: 2, 3
    int arr[2][2] = { {0, 1}, {2, 3} };

    // Print the first 1-D array.
    printArray(arr[0], 2);

    // Print the second 1-D array.
    printArray(arr[1], 2);
}