C 基礎知識 二維陣列做函式引數

2021-07-11 15:46:03 字數 977 閱讀 1536

1.確定大小的二維陣列

void func(int array[3][10]); 

void func(int array[10]); 

2.不確定大小的二維陣列轉為二維指標:

從實參傳遞來的是陣列的起始位址,在記憶體中按陣列排列規則存放(按行存放),而並不區分行和列,所以可以轉換成二維指標。

void func(int **array, int m, int n); 

呼叫時候要把陣列名轉換位二維指標

func((int**)a, 3, 3); 

獲取具體陣列元素

*((int*)array + n*i + j); 

:其中 (int *)array把array轉換成一維陣列的儲存方式

然後從一維陣列裡讀取元素。

若*(array + n*i + j);  輸出:

00000001

00000002

00000003

00000004

00000005

00000006

00000007

00000008

00000009

0000000a

0000000b

0000000c

0000000d

0000000e

0000000f

00000010

若*((int*)array + n*i + j); 輸出:12

3456

78910

1112

1314

1516

3.最方便的還是轉為一維指標。

因為在記憶體中是連續存放的,所以。。。。。

void func(int *array, int m, int n); 

呼叫時候要把陣列名轉換位二維指標

func((int*)a, 3, 3); 

獲取具體陣列元素

*(array + n*i + j); 

C 陣列 二維陣列 函式引數

一維陣列 1 include 2 using namespace std 3int main 4 7 通過指標的方式訪問陣列 8 int p numbers 9 cout 普通指標的方式訪問 n 10for int i 0 i 5 i 11 cout p i 12 cout 13 14 在這裡面nu...

C 二維陣列作函式引數

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...

C 二維陣列作函式引數

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...