C語言中的二維陣列

2021-09-24 00:13:01 字數 1687 閱讀 3871

二維陣列作為形參時退化為指標

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

printf

("%p, %p\n"

, a, a +1)

;//a代表首行位址

printf

("%p, %p\n",*

(a +0)

,*(a +0)

+1);

//*(a+0)代表首行首元素位址

printf

("%p\n",*

(a +0)

+1);

//第i行第j列元素的位址

printf

("%c\n",*

(*(a +0)

+0))

;//第i行第j列元素的值

測試**

#define _crt_secure_no_warnings 

#include

#include

#include

void

printa

(char a[3]

[4])

int main

(void);

char a[

4]=,

,}; int n =

sizeof

(a)/

sizeof

(a[0])

;//二維陣列行數

int m =

sizeof

(a[0])

;//二維陣列列數

printf

("m = %d, n = %d\n"

, m, n)

;printf

("實際陣列a大小 = %d\n"

,sizeof

(a))

;printa

(a);

printf

("%p, %p\n"

, a, a +1)

;//a代表首行位址

printf

("%p, %p\n",*

(a +0)

,*(a +0)

+1);

//*(a+0)代表首行首元素位址

printf

("%p\n",*

(a +0)

+1);

//第i行第j列元素的位址

printf

("%c\n",*

(*(a +0)

+0))

;//第i行第j列元素的值

int i =0;

for(i =

0; i < n; i++

)//二維陣列按行輸出

printf

("\n");

system

("pause");

return0;

}

c語言中的二維陣列相關

1 定義二維陣列 型別 陣列名 常量表示式 表示行有多少元素 常量表示式 表示列有多少函式 int a 3 4 3行4列 char a 3 4 3行4列 訪問最後乙個元素 a 2 3 訪問第乙個元素 a 0 0 都是從0開始 2 陣列初始化和列印 二維陣列也可以僅僅對某些元素賦初值。剩下的變為0 想...

c語言中二維陣列的傳遞

c語言中經常需要通過函式傳遞二維陣列,有三種方法可以實現,如下 方法一,形參給出第二維的長度。例如 include void func int n,char str 5 void main func 3,str 方法二,形參宣告為指向陣列的指標。例如 include void func int n,...

C語言中的二維陣列與指標

最近複習了一下c語言中的指標陣列 陣列指標這些比較讓人困惑的概念,有了一些新的認識。在定義變數時,需要用到一些運算子,比如 這些運算子有一定優先順序,我們可以根據其優先順序來對我們定義的變數進行理解。具體的方法就是 加括號。下面舉幾個例子 1 二維陣列 定義 int a 3 4 理解 運算子遵循從左...