(五)C 語言之陣列

2021-10-03 21:37:35 字數 2781 閱讀 9660

1.1 基本概念

1.1.1 概念

1)元素型別角度:陣列是相同型別的變數的有序集合 測試指標變數占有記憶體空間大小

2)記憶體角度:聯絡的一大片記憶體空間

1.1.2 陣列初始化

int

main()

;//其他初始化為0

int b=

;int c[20]

=;for(i=

0; i<

10; i++

)memset

(a,0

,sizeof

(a))

;return0;

}

1.1.3 陣列名的技術盲點

1)陣列首元素的位址和陣列位址是兩個不同的概念

2)陣列名代表陣列首元素的位址,它是個常量。

解釋如下:變數本質是記憶體空間的別名,一定義陣列,就分配記憶體,記憶體就固定了。所以陣列名起名以後就不能被修改了。

3)陣列首元素的位址和陣列的位址值相等

4、怎麼樣得到整個一維陣列的位址? &buf

c語言規定:

int a[10];

printf(「得到整個陣列的位址a: %d \n」, &a);

printf(「陣列的首元素的位址a: %d \n」, a);

怎麼樣表達int a[10]這種資料型別那?

1.2 陣列型別、陣列指標型別、陣列指標型別變數

1.2.1 陣列型別

//typedef  int (myint)[5];

intmain()

for(i =

0;i<

5; i++

)printf

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

,arr,arr+1)

;//arr代表陣列首元素位址

printf

("&arr: %d, &arr+1 :%d\n"

,&arr,

&arr+1)

;// &arr代表整個陣列的位址

return0;

}

1.2.2 陣列指標型別

1.2.2.1陣列指標型別

陣列指標用於指向乙個陣列

定義陣列指標 有兩種

通過陣列型別定義陣列指標:

typedef

int(arraytype)[5

];int*a

arraytype* pointer;

宣告乙個陣列指標型別 typedef int (*mypointer)[5];

mypointer mypoint;

直接定義:int (*pointer)[n];

pointer 為陣列指標變數名

type 為指向的陣列的型別

n 為指向的陣列的大小

1.2.2.2 陣列指標型別案例

int

main()

for(i=

0;i<

5;i++

)}

int

main()

for(i=

0;i<

5;i++

)return0;

}

int

main()

for(i=

0;i<

5;i++

)return0;

}

1.3多維陣列本質

1.3.1 本質

多維陣列的本質就是陣列指標

//多維陣列名的本質 陣列指標 ,步長 一維的長度

// (a+i) 代表是整個第i行的位址 二級指標

// *(a+i) 代表 1級指標 第i行首元素的位址

// (a+i) + j ===> & a[i][j]

//( (a+i) + j) =>a[i][j]元素的值

//a[i][j] <= >( *(a+i) + j)

//a[i] ===> a[0+i] ==> *(a+i);

//a[i][j] === a[0+i][j] ==> *(a+i)[j] ===> *(a+i)[0 + j] ==> *( *(a+i) + j)

1.4 指標陣列的應用

1.4.1

//誰呼叫函式,誰分配記憶體

//作業系統分配記憶體,

intmain

(int argc,

char

* ar**,

char

**env)

// for(i=0; ar**[i]!=null; i++)

//

printf

("******************* end ar** *******************\n");

printf

("\n");

printf

("\n");

printf

("\n");

printf

("******************* begin env *******************\n");

for(i=

0; env[i]

!=null

; i++)//

printf

("******************* end env*******************\n");

return0;

}

1.4.2

1.4.3

C語言之陣列

c語言之陣列 一,一維陣列 1,一維陣列的定義 型別符 陣列名 常量表示式 注 1 常量表示式中可以包括常量和符號常量.int a 3 5 是合法的,int a n 是不合法的,c語言不允許對陣列的大小作動態定義 2 如果在被呼叫的函式 不包括主函式 中定義陣列,起長度可以是變數或非常量表示式,可稱...

C語言之陣列

c語言陣列 一 陣列的概念 用來儲存一組資料的構造資料型別 特點 只能存放一種型別的資料,如全部是int型或者全部是char型,陣列裡的資料成為元素。二 陣列的定義 格式 型別 陣列名 元素個數 舉例 儲存5個人的年齡 int agrs 5 在記憶體中開闢4x5 20個位元組的儲存空間 可以在定義陣...

C語言之陣列

一 一維陣列 1.1 一維陣列的定義 1.一維陣列是指數組中的每個元素只帶有乙個下標的陣列。定義方式為 型別說明符 陣列名 常量表示式 1.2 一維陣列元素的引用 1.陣列元素的引用形式為 陣列名 下標表示式 2.乙個陣列元素實質上市乙個變數名,代表記憶體中的乙個儲存單元,乙個陣列佔據的是一連串連續...