C學習筆記(十一)陣列認知

2021-07-15 07:50:51 字數 1536 閱讀 4582

一.一維陣列

1.1定義初始化遍歷

整型陣列

字元陣列

1.2陣列名的作用(指標常量) 陣列首元素的位址

1.2.1 array 與& array 的區別

&a 對一維陣列的陣列名取位址等於陣列的位址

*(&a)

對一維陣列的位址取值等於陣列首元素的位址

1.2.2陣列指標

陣列指標定義與初始化

陣列指標是乙個指標變數,這指標指向乙個陣列

int (*pa)[3] = &a;

傳一維陣列的位址 用陣列元素指標來接

傳二維陣列的位址 用一維陣列指標來接

傳一維陣列的位址 用二維陣列指標來接

void print_ptr(char ptr[100]) // vod print_ptr(char *ptr)

void print_ptr(char src[3][100]) //void print_ptr(char (*src)[100])

二.二維陣列

1.1定義初始化遍歷

整型陣列

字元陣列

char src[3][100];

scanf(「%s」,src[i]);  // scanf(「%s」,*(src+ i));

1.2陣列名的作用(指標常量)首個一維陣列的位址

1.2.1 *(*(array)+ i)+ j )如何理解

array)+ i 第i + 1 個一維陣列的位址

*(array)+ i)  第i + 1 個一維陣列的首元素的位址

*(array)+ i)+ j      第i + 1 個一維陣列的第j + 1個元素的位址

*(*(array)+ i)+ j ) 第 i + 1 個一維陣列的第j + 1個元素的值

1.2.1指標陣列

指標陣列定義與初始化

int i;

for(i = 0; i < 3; i++)

指標陣列的作用

int main(int argc,char *argv);

argc 命令列引數的個數

argv 儲存命令列引數

\\可用於函式入口引數檢查

if(argc != 2)

ps: void printf_ptr(char  **ptr)

傳指標陣列或指標的位址 用指標的指標來接

三.陣列的複雜宣告

3.1左右法則

3.2複雜指標宣告:int *(*(*fp1)(int))[10];

四.指標和陣列的區別

空間分配:陣列的空間時靜態分配的,分配的空間是連續的;指標是動態分配記憶體空間,不連續分配空間

訪問效率:陣列是直接訪問,訪問效率高 ,而指標屬於間接訪問,訪問效率低

安全性:陣列可能會引起陣列越界,指標會可能會因為是野指標引起記憶體洩漏

函式形參:陣列的函式形參為:元素指標或是 陣列指標  指標函式形參:指標的指標

C 學習筆記 三十一 資料封裝

封裝是物件導向程式設計中的把資料和運算元據的函式繫結在一起的乙個概念,這樣能避免受到外界的干擾和誤用,從而確保了安全。資料封裝引申出了另乙個重要的 oop 概念,即資料隱藏。資料封裝是一種把資料和運算元據的函式 在一起的機制,資料抽象是一種僅向使用者暴露介面而把具體的實現細節隱藏起來的機制。c 通過...

linux下python學習筆記 十一)資料結構1

這會是非常重要的內容。在python中有三種內建的資料結構 列表 元組和字典。我們將會學習如何使用它們,以及它們如何使程式設計變得簡單。1.列表 list是處理一組有序專案的資料結構,即你可以在乙個列表中儲存乙個序列的專案。列表中的專案應該包括在方括號中,這樣python就知道你是在指明乙個列表。一...

PHP學習(十一) 陣列與資料結構

陣列是php語言中最重要的資料型別之一,在php中的應用十分的廣泛。因為php是弱資料型別的程式語言,所以php中的陣列變數可以儲存任意多個 任意型別的資料,並且可以實現其他強資料型別中的堆 棧 佇列等資料結構的功能。使用陣列的目的,就是將多個相互關聯的資料,組織在一起形成集合,作為乙個單元使用,達...