用两个指针初始化数组

时间:2013-01-19 12:53:13

标签: c arrays

int main() {
    int **matrix = {
        {1, 3, 2, 4},
        {3, 2, 4, 5},
        {9, 3, 2, 1}
    };

    getchar();
}
  1. 为什么会显示类似“标量初始值设定项括号”的警告?
  2. 为什么我需要使用多个指针初始化多维数组? (如果你能给我一些非常容易理解的解释......)
  3. 如果我想使用int matrix [3] [4]而不是int ** matrix ...如果我想传递这个数组,那么函数参数是什么? int[][]

1 个答案:

答案 0 :(得分:5)

int **是指针类型而不是数组类型。指针不是数组。使用类型int [3][4]

您无法将数组传递给函数,但可以将指针传递给数组。将指针传递给int的数组4的函数声明将是:

void f(int arr[3][4]);

void f(int arr[][4]);

void f(int (*arr)[4]);

这三个声明是等效的。