c語言中經常需要通過函式傳遞二維陣列,有三種方法可以實現,如下:
方法一,形參給出第二維的長度。
例如:
#include
void func(int n,char str[ ][5])
void main()
;func(3, str);}
方法二,形參宣告為指向陣列的指標。
例如:
#include
void func(int n,char(*str)[5])
void main()
;func(3, str);}
方法三,形參宣告為指標的指標。
例如:
#include
void func(int n,char **str)
void main()
;p[0] = &str[0][0];
p[1] = str[1];
p[2] = str[2];
func(3, p);}
#include
void fun(int **ppn, int n1, int n2);
int main(void)
; pptmp = (int **)a;
fun(pptmp, 3, 4);
return 0;
} void fun(int **ppn, int n1, int n2)
最後附上兩個矩陣相乘:
//矩陣相乘:c = a*b
void multiple(float a[4], float b[5], float c[5])
c[i][j]=res;
}}
測試**:
//測試矩陣相乘
void test2()
,,};
float b[4][5] =,,,};
float c[3][5] =;
multiple(a, b, c);
for(int i=0; i < 3; i++)
printf("\n");
}}
C語言中二維陣列和指標
a或 a 1 行位址 a i 行位址加列位址test 如下所示 include int main void 第一行位址 printf p,p,p,p n nums,nums 0 nums,nums 0 第二行位址 printf p,p,p,p n nums 1,nums 1 nums 1 nums ...
C 中二維陣列
一 為什麼要使用多維陣列 生活中,有很多事物,僅僅用一維陣列,將無法恰當地被表示。還是說學生成績管理吧。乙個班級30個學員,你把他們編成1到30號,這很好。但現在有兩個班級要管理怎麼辦?人家每個班級都自有自的編號,比如一班學生編是1 30 二班的學生也是1 30。你說,不行,要進行計算機管理,你們兩...
C語言中的二維陣列
二維陣列作為形參時退化為指標 void printa char a 3 4 a 代表第0行首位址 a i 等價於 a i 代表第i行首位址 a i 等價於 a i 代表第0行首元素位址 a i j 等價於 a i j 代表第i行第j列元素的位址 a i j 等價於 a i j 代表第i行第j列元素的...