码迷,mamicode.com
首页 > 编程语言 > 详细

C和指针笔记——数组的乘法

时间:2015-06-04 00:44:12      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

 1 //code by zzlpp
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 
 5 void matrix_multiply( int *m1,int  *m2,int *r,
 6                      int const x,int const y,int const z );
 7 
 8 
 9 int main( void )
10 {
11     //初始化原始矩阵
12     int m1[3][1]={1,2,3},
13         m2[1][3]={3,2,1},
14         r[3][3]={{},{},{}};
15 
16     int i,
17         j;
18     //调用函数
19     matrix_multiply(*m1,*m2,*r,3,1,3);
20     //打印得到的矩阵
21     for ( i=0;i<3;i++ )
22     {
23         for ( j=0;j<3;j++ )
24         {
25             printf("%d ",r[i][j]);
26         }
27         printf("\n");
28     }
29     system( "pause" );
30     return 0;
31 }
32 
33 void matrix_multiply( int *m1,int *m2,int *r,
34                      int const x,int const y,int const z )
35 {
36     int row,            //对应x
37         column,            //对应y
38         direction;        //对应z
39     int *m1_cpy,
40         *m2_cpy;
41     for ( row=0;row<x;row++ )
42     {
43         for ( direction=0;direction<z;direction++ )
44         {
45             m1_cpy=m1+row*y;
46             m2_cpy=m2+direction;
47             for ( column=0;column<y;column++ )
48             {
49                 *r+=(*m1_cpy)*(*m2_cpy);
50                 m1_cpy+=1;
51                 m2_cpy+=direction;
52             }
53             r++;
54         }
55     }
56 }

  这个代码主要是熟悉多维数组,在函数传递的时候要注意方法,同时在函数中操作多维数组也需要方法,这里如果使用下表引用是行不通的,必须设置一个专门的变量当做下表使用(如文中的row,column,direction)。当然我的认识是片面的,多多海涵。

 

  

C和指针笔记——数组的乘法

标签:

原文地址:http://www.cnblogs.com/zzlpp/p/4550597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!