Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何阅读这个复杂的C声明?_C_Pointers_Matrix_Multidimensional Array - Fatal编程技术网

如何阅读这个复杂的C声明?

如何阅读这个复杂的C声明?,c,pointers,matrix,multidimensional-array,C,Pointers,Matrix,Multidimensional Array,我是C语言新手,在函数中读取这个矩阵声明时遇到问题 void fooint*数组[][3],整数行,整数列 在函数中,我如何访问数组元素——比如说打印它的值 int (*array)[][3] 将数组声明为指向第二维度为3的二维数组的指针。用法示例: #include <stdio.h> void foo(int (*array)[][3], int row, int col) { printf("%d\n", (*array)[row][col]); } int mai

我是C语言新手,在函数中读取这个矩阵声明时遇到问题

void fooint*数组[][3],整数行,整数列

在函数中,我如何访问数组元素——比如说打印它的值

int (*array)[][3]
将数组声明为指向第二维度为3的二维数组的指针。用法示例:

#include <stdio.h>

void foo(int (*array)[][3], int row, int col)
{
   printf("%d\n", (*array)[row][col]);
}

int main()
{
   int array[10][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
   foo(&array, 2, 2);

   return 0;
}
*数组[][3]是指向2D数组的指针。它可以指向变量行和3列的int数组。以下是一个示例:

int main(void)
{
    int arr[3][3] =
    {
        {0,0,0},
        {1,0,0},
        {1,1,0},
    };
    int (*array)[3][3],row,col;
    array = &arr;
    printf("arr[1][0] : %d\n",(*array)[1][0]);
}

这是一个无效的语法。这可能是有用的,这可能是一个函数的参数列表;在这种情况下,函数接受三个参数:指向3个整数数组的指针和另外两个整数数组。您可以在这里学习如何解析此类声明:可能重复@szczurcio是的,它是函数的一部分。我在问题上做了改变
int main(void)
{
    int arr[3][3] =
    {
        {0,0,0},
        {1,0,0},
        {1,1,0},
    };
    int (*array)[3][3],row,col;
    array = &arr;
    printf("arr[1][0] : %d\n",(*array)[1][0]);
}