C 如何将矩阵行的元素传递给函数?

C 如何将矩阵行的元素传递给函数?,c,matrix,C,Matrix,假设在C中有一个多维矩阵,矩阵[2][3],其元素如下所示: 1 3 5 2 3 4 我想将矩阵的第二行作为数组传递给函数。我是这样做的: void myFunction(int array[]) { } int main() { int matrix[2][3]; myFunction(matrix[2]); } 但是,当我在myFunction中打印数组[]的值时,元素看起来都设置为零: 0 0 0 如何正确地将矩阵行的元素传递给函数?矩阵[2]在代码中不是预定义的

假设在C中有一个多维矩阵,矩阵[2][3],其元素如下所示:

1 3 5
2 3 4 
我想将矩阵的第二行作为数组传递给函数。我是这样做的:

void myFunction(int array[]) {
}

int main() {
    int matrix[2][3];
    myFunction(matrix[2]);
}
但是,当我在myFunction中打印数组[]的值时,元素看起来都设置为零:

0 0 0
如何正确地将矩阵行的元素传递给函数?

矩阵[2]在代码中不是预定义的位置。您需要传递矩阵[1]才能访问第二行

顺便说一下,您似乎要传递的数组尚未初始化。请在传递给函数之前对其进行初始化

例如,在您的情况下,代码应该是:-

void myFunction(int array[]) {
...// and so on
}

int main() {
int matrix[2][3] = {{1,3,5},{2,3,4}};
myFunction(matrix[1]);
...// and so on
return 0;
}
注意:C中的数组索引始终从0开始。

矩阵[2]在代码中不是预定义的位置。您需要传递矩阵[1]才能访问第二行

顺便说一下,您似乎要传递的数组尚未初始化。请在传递给函数之前对其进行初始化

例如,在您的情况下,代码应该是:-

void myFunction(int array[]) {
...// and so on
}

int main() {
int matrix[2][3] = {{1,3,5},{2,3,4}};
myFunction(matrix[1]);
...// and so on
return 0;
}

注意:C中的数组索引总是从0开始。

传递矩阵[1]而不是矩阵[2],因为索引总是从零开始。

传递矩阵[1]而不是矩阵[2],因为索引总是从零开始。

不更正您的问题。其他人怎么知道你的错误呢?不要纠正你的问题。其他人怎么知道你的错误呢?代码中还有另一个缺陷。OP将一个统一化的数组传递给他的函数,并将其打印出来。@WeatherVane-事实上,我相信OP的目的只是想知道为什么代码不起作用,因为在问题的开始,OP说他们的数组包含给定的元素。。。但是,谢谢,我会进行必要的编辑。@I_有帮助吗?我只是因为OP的要求而变得迂腐,所以这是我唯一的代码缺陷?我的意思是,这是我的代码唯一的缺陷?。我理解你的观点,它实际上是初始化的,但是代码本身跳过了这一部分。代码中还有另一个缺陷。OP将一个统一化的数组传递给他的函数,并将其打印出来。@WeatherVane-事实上,我相信OP的目的只是想知道为什么代码不起作用,因为在问题的开始,OP说他们的数组包含给定的元素。。。但是,谢谢,我会进行必要的编辑。@I_有帮助吗?我只是因为OP的要求而变得迂腐,所以这是我唯一的代码缺陷?我的意思是,这是我的代码唯一的缺陷?。我理解你的观点,它实际上是初始化的,但是代码本身跳过了这一部分。