結構體中的指標用法:
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...