c語言中二維陣列的傳遞

2021-06-22 15:42:40 字數 1212 閱讀 8243

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列元素的...