C語言學習筆記04

2021-10-09 06:26:05 字數 1415 閱讀 2159

結構體中的指標用法:

p->a,其中p是指向乙個結構體的指標,a是這個結構體型別的乙個成員。表示式p->a引用了指標p指向的結構體的成員a。

1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。

2、堆區(heap) — 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os** 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。

3、全域性區(靜態區)(static)—,全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。 - 程式結束後有系統釋放

4、文字常量區—常量字串就是放在這裡的。 程式結束後由系統釋放

5、程式**區—存放函式體的二進位制**。

指標函式:就是返回指標值的函式

函式指標:函式指標就是乙個指向函式的指標。每個函式在編譯時,會被分配乙個入口位址,一般用函式名來表示,這個位址就是該函式的指標。

//*在()裡面則表明是函式指標;

函式指標本質上還是一種指標,只不過其指向的位置是乙個函式,因為函式本質上也是放到位址裡面的。

鍊錶的基本思想:

當乙個陣列不夠使用的時候,讓這個陣列的尾部指向下乙個陣列的頭部,

鍊錶的基本結構:

基本用途是當乙個陣列不夠用的時候,其尾部會有乙個指標來指向下乙個陣列,並且第乙個陣列的頭部會有乙個頭指標指向它;每一部分都是乙個結點;

結點的定義:

標識的命名規則一般是頭檔名全大寫,前後加下劃線,並把檔名中的「.」也變成下劃線,如:stdio.h ,#ifndef stdio_h

#define stdio_h

要構成乙個鍊錶需要有乙個頭指標來存放第乙個;

typedef struct _node node; //將乙個結構體定義為乙個型別

int main()

last->next = p;

}else

}

} while (number != -1);

return 0;

#endif

演算法的複雜度是可以度量的,每乙個步驟都可以具體的衡量,大o階表示法;

1:線性表是具有相同型別的n個資料元素的有限序列,(a1,a2,…,an);

2:除了a1和an外,其他元素既有前驅又有後繼;

3:線性表能夠逐項訪問和順序訪問;

線性表的具體操作:

1:建立線性表:

2:銷毀線性表:

3:清空線性表:

4:將元素插入線性表:

5:將元素重線性表中刪除:

6:獲取線性表中某個位置的元素:

7:獲取線性表的長度:

整個對於這個線性表的一整套的操作就構成了完整的api函式。

C語言學習筆記04

define crt secure no warnings 1 include include intmax int a,int b 函式前寫void是說不需要返回值,就不用加return語句,所以不需要返回值的函式可以這麼寫 define max 100 巨集定義變數,所有的max都代表100 d...

Go 語言學習筆記(Day 04)

假定 a 值為 10,b 值為 20。3.1.1 算數運算子 運算子描述例項 相加a b 輸出結果 30 相減 a b 輸出結果 10 相乘 a b 輸出結果 200 相除 b a 輸出結果 2 求餘 b a 輸出結果 0 自增 a 輸出結果 11 自減 a 輸出結果 9 3.1.2 關係運算子 運...

C語言學習筆記

include include void swap int p1,int p2 void swapa int arr,int n void printfa int arr,int n int main int argc,char argv swap i,j printfa array,6 swapa...