我一整天都在尝试解决这个问题:
如何将双精度数组传递给函数?
这是一个例子:
int matrix[5][2] = { {1,2}, {3,4}, {5,6}, {7,8}, {9,10} };
我希望将此矩阵传递给名为的函数eval_matrix
,
void eval_matrix(int ?) {
...
}
我不知道应该用什么来代替?
谁能帮我解决这个问题吗?
我知道数组可以作为指针传递,但是双数组(或三数组?)
谢谢,博达·西多。
为了可用作数组,编译器必须知道数组的内部步长,因此它是:
void eval_matrix( int m[5][2] ) { ...
or:
void eval_matrix( int m[][2], size_t od ) { ... /* od is the outer dimension */
or just:
void eval_matrix( int* p, size_t od, size_t id ) { ... /* ditto */
无论如何,它都是语法糖——数组被衰减为指针。
在前两种情况下,您可以照常引用数组元素m[i][j]
,但在第三种情况下必须手动偏移p[i*id + j]
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)