C語言二維陣列的使用

2021-09-29 11:52:32 字數 3138 閱讀 2145

#define _crt_secure_no_warnings

#include

#include

#include

intmain01()

,,};

int a2[3]

[4]=

;int a3[

4]=;

int i =

0, j =0;

for(i =

0; i <

3; i++

)printf

("\n");

}printf

("\n");

//二維陣列陣列名代表第0行首位址(區別於第0行首元素位址,雖然值一樣)

//它們步長不一樣

printf

("a:%d, a+1:%d\n"

, a3, a3 +1)

;//+4*4

printf

("%d, %d\n",*

(a3 +0)

,*(a3 +1)

);//+16

printf

("%d, %d\n"

, a3[0]

, a3[0+

1]);

//同上

printf

("%d, %d\n",*

(a3 +0)

,*(a3 +0)

+1);

//+4

printf

("%d, %d\n"

, a3[0]

, a3[0]

+1);

//同上

int a = a3;

//a :代表第0行首位址

//a+i <==> &a[i]: 代表第i行首位址

//*(a+i) <==> a[i]: 代表第i行首元素位址

//*(a+i)+j <==> &a[i][j]: 代表第i行第j列的位址

//*(*(a+i)+j) <==> a[i][j] = 第i行第j列的元素的值

printf

("\n");

system

("pause");

return0;

}void

printa

(int

** a,

int n)

printf

("\n");

}int

main02

(void);

printa((

int*

)a,sizeof

(a)/

sizeof

(a[0][

0]))

;printf

("\n");

system

("pause");

return0;

}int

main03

(void);

//2個 a[10]的一維陣列

#if 0

//定義陣列指標變數

//指向一維陣列的整個陣列首位址

int(

*p)[10]

;//p = &a;//error,整個二維陣列首位址 p = a;

p = a;

//p等價於二維陣列名,第0行首位址

printf

("p:%d, p+1:%d\n"

, p, p +1)

;//10*4=40

#endif

//定義陣列指標型別,再定義變數

typedef

int(

*p)[10]

; p p;

p = a;

int i =

0, j =0;

int n =

sizeof

(a)/

sizeof

(a[0])

;int nj =

sizeof

(a[0])

/sizeof

(a[0][

0]);

for(i =

0; i < n; i++

)printf

("\n");

}int t[10]

;printf

("sizeof(t) = %d, sizeof(&t) = %d\n"

,sizeof

(t),

sizeof

(&t));

//int a[2][10]

//40 4

printf

("sizeof(a[0]) = %d, sizeof(&a[0]) = %d\n"

,sizeof

(a[0])

,sizeof

(&a[0]

));printf

("sizeof(*(a + 0)) = %d, sizeof(a + 0) = %d\n"

,sizeof(*

(a +0)

),sizeof

(a +0)

);printf

("\n");

system

("pause");

return0;

}void

printarray

(int a[

4])//7k

printf

("\n");

}printf

("\n");

}void

printarray2

(int

(*a)[4

])//9k

printf

("\n");

}printf

("\n");

}typedef

int(

*p)[4]

;void

printarray3

(p a)

//同上

printf

("\n");

}printf

("\n");

}int

main

(void);

printarray3

(a);

printf

("\n");

system

("pause");

return0;

}

C語言二維陣列

int main int argc,const char argv int array 5 建立乙個二維陣列 型別修飾符陣列名 包含幾個小陣列 每個小陣列有多少個元素 初始值如何寫?int array 3 4 一維陣列可以省略元素個數,二維陣列只能省略第一位 第乙個 3 可以不寫 第二種初始值寫法 ...

C語言 二維陣列

c語言之二維陣列 1 定義的基本格式 int a 1 2 1代表一行,2代表二列 難點 二維陣列的行列下標。字串結束標誌的實用。2 一維陣列和二維陣列的聯絡。一維陣列如同千層面一樣一層一層的,而二維陣列,只是給千層面切了幾刀 3 int a 2 3 a 0 0 是1,a 0 1 是2,a 0 2 是...

C語言 二維陣列

1 陣列名稱不可以代表儲存區 2 陣列名稱可以代表陣列裡第乙個儲存區的位址 3 可以對陣列名稱進行sizeof計算,結果是陣列裡所有儲存區的總大小 4 c99規範裡可以使用變長陣列,宣告變長陣列的時候可以用變數表示陣列裡的儲存區個數 5 某一次程式執行過程中變長陣列裡儲存區個數不會變化 6 如果程式...