C知識點框架總結

2021-10-05 11:16:49 字數 1806 閱讀 7851

記憶體:

記憶體管理方法:棧、堆、**段(.txt)、資料段(.data)、bss段(.bss)

棧:自動:編譯器自動申請和釋放,如區域性變數的管理。

空間小:注意申請陣列空間大小(比堆小)

棧溢位情況:陣列定義過大、遞迴深度太深容易使棧溢位

動態區域性變數的生命週期和作用域:被定義的區域性函式內部,區域性函式結束,資源釋放,區域性變數消失

靜態區域性變數的生命週期和和作用域,如同全域性變數。

堆:手動:程式設計師手動申請(malloc)和釋放(free)

非連續:有斷層

空間大:可申請很大一塊區域(比棧大)

堆溢位:分配空間太大

生命週期和作用域:malloc開始、free結束

**段(.code):

函式、字串常量、const修飾的變數const char * p = "linux";

資料段(.data)

存顯示初始化非0的放全域性變數、靜態區域性變數

bss段(.bss)

初始化為0的資料段

存未顯示初始化或顯示初始化為0的全域性變數和靜態區域性變數

大小端:

大端:記憶體高低位: 0001(1存在低位) 1000(1存在高位)

0001

反則大端

1.問題?如何確定機器的大小端

#include union un

;int main(void)

;if (u.c == 1) printf("little\n");

else printf("big\n");

return;

}計算機最小計算單位:位

變數: 指標、字串(ascii)、陣列(sizeof、strlen)、共用體(union)、結構體(typedef、struct)、列舉(enum)、巨集定義(define)

2.字串表示方法

2.1 由字元組成以'\0'為結束符。char *p = "linux"; 字元指標p指向"linux"儲存區,字串"linux"長度5,占用空間6byte,結束符'\0',"linux"值是'l'的位址

2.2 char p = ; p為陣列占用6byte。

2.3 sizeof()字面量,檢視型別和變數占用記憶體大小。strlen()計算字串長度不報考'\0',

3.共用體:成員變數共用一塊記憶體,解析方式(取值長度)不同,占用成員變數最大的記憶體

4.結構體:將多個不同型別變數放到一起,一般按照4位元組(32位機)對齊取值

5.巨集定義:用來替換單個東西

5.列舉:用來替換多個有關聯的東西

函式:字串函式、遞迴函式、函式庫(數學庫函式)

儲存類、作用域、生命週期、鏈結屬性

1.字串函式

2.1處理:strcpy、strncpy、strcat、strncat

2.2比較:strcmp、strncmp、strsrt

2.3記憶體:memset、memcpy、memcmp

處理字串注意結束符'\0'是否被賦值,已經賦值結束後剩餘部分是否清零

修飾符(關鍵字):

auto、static、register、const、voliate、extern、restrict、typedef

程式執行過程:

預處理(巨集(define))、編譯、彙編、鏈結(鏈結庫)

資料結構:

鍊錶(link)、棧(stack)、佇列(queue)、二叉樹(tree)

演算法:查詢(順序、二分)、排序(二分、冒泡、歸併、快排)

時間和空間效率

系統程式設計與網路程式設計:

刷題: 劍指

專案:

c 知識點總結

1 c 中判斷物件為空的幾種方式 1 先了解幾個與空型別相關的關鍵字和物件 null 關鍵字表示不引用任何物件的空引用,它是所有引用型別變數的預設值,在2.0版本之前也就只有引用變數型別可以為null,如 string a null 但在c 2.0版本之後,net也引入了可以為null的值型別,但變...

C 知識點總結

程式 資料結構 演算法.c語言是面向過程的,面向過程就是分析出解決問題的步驟,然後用函式將其實現,使用時依次呼叫.程式 物件 訊息.c 是物件導向的,c 物件導向是將構成問題的事物分解成各個物件,每個物件完成在解決整個問題中的行為.主要特點是類,封裝,繼承,多型等。物件導向的語言具有更好的可擴充套件...

C 知識點總結

變數和常量 命名變數 在c 中,使用變數的基本原則是先定義後使用。其命名規範如下 1.必須以字母或下劃線開頭 2.只能由字母 數字 下劃線組成,不能 包含空格 標點符號 運算子及其他符號 3.不能與c 關鍵字同名,如class,new等 例如,正確命名 int i 整型變數 stringuser n...