matmult.c
来自「与C语言四书五经之《C和指针》的配套的书上源代码。」· C语言 代码 · 共 45 行
C
45 行
/*
** Multiply two matrices together.
*/
void
matrix_multiply( int *m1, int *m2, register int *r,
int x, int y, int z )
{
register int *m1p;
register int *m2p;
register int k;
int row;
int column;
/*
** The outer two loops go through the solution matrix element
** by element. Because this is done in storage order, we
** can access these elements using indirection on r.
*/
for( row = 0; row < x; row += 1 ){
for( column = 0; column < z; column += 1 ){
/*
** Compute one value in the result. This is
** done by getting pointers to the proper
** elements in m1 and m2, and then advancing
** them as we go through the loop.
*/
m1p = m1 + row * y;
m2p = m2 + column;
*r = 0;
for( k = 0; k < y; k += 1 ){
*r += *m1p * *m2p;
m1p += 1;
m2p += z;
}
/*
** Advance r to point to the next element.
*/
r++;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?