C語言知識整理

  1. 編碼:

Float編碼:高8位存階碼,低24位存尾數

        Int編碼:用補碼

                                     正數的原碼,反碼,補碼相同

                            例如:7=(0111)

                                     負數的原碼-7=(1111)

                                               反碼(1000)除了第一個符號位不變,其他取反

                                               補碼(1001)反碼加一

                   其中,負數的符號位爲1,整數爲0.

  1. 三目操作符:(a>b)?a:b

式1成立則去式2,否則取式3

  1. switch()

{

           Case 式1:                                         //式1是常量表達式

                    語句序列1;

                    Break;

           Case 式2:                                         //式2是常量表達式

                    語句序列2;

                    Break;

           Default:

語句;                                                                     

}

  1. 遞歸
  1. 保護現場,把所有信息壓棧
  2. 執行,返回

 

遞推比遞歸運行更快。

  1. strcpy 字符串複製

strcmp比較字符串大小

         strlen(“china”)=5;

sizeof(“china”)=6;      //字符串結尾處有\0

8.循環語句

for

while

do while

 

9.指針

  1. 指針存儲的是首地址
  2. Int  *pi=NULL;     //指針的初始化
  3. 指針的加減

Pi+1的值與類型有關,int型+4,char型+1

一般用於數組,否則會出現野指針。

10.數組

         對於一個數組a

                   a[el]與(a+el)等價;

         對於指針變量p

                   *(p+el)與p[el]等價

  1. 數組變量a的右值爲數組首元素的地址(&a[0])

11.一維數組作爲形參會:丟失長度;退化爲指針

12.選擇排序

13.冒泡排序

14.malloc函數常用方式:

   int *pi=(int *)malloc(2*sizeof(int));

15.鏈表

  1. 數據域
  2. 指針域
  3. 頭指針

16.函數形參出現指針的原因:

  1. 指針指向結構體,提高傳參效率
  2. 修改對應實參的值

17.棧:

  1. 只有頂棧可以操作
  2. 先進後出

18.隊列:

  1. 隊頭:允許刪除
  2. 隊尾:允許插入
  3. 先進先出

19.完全二叉樹

  1. N個結點的完全二叉樹的深度爲:K=|log2 (n)|+1
  2. N個結點的完全二叉樹,按層序編號:

i=1,結點i是二叉樹的根,無雙親

i>1,其雙親結點[i/2]

如果2i>n,結點i無左孩子,否則其左孩子爲2i

如果2i+1>n,結點i無右孩子,否則其右孩子爲2i+1

20.前序遍歷

21.中序遍歷

22.後序遍歷

23.堆調整

24.時間複雜度

25.二叉樹的深度(N個結點)

         [log2(n)]+1

26.內核空間從內到外:內核,系統調用

   用戶空間從內到外:shell/公用函數庫,應用程序    (shell和公用函數庫在同一層)

  從用戶空間跨到內核空間有較大的系統開銷

27.文件編程

  文件IO:系統調用次數多,開銷大

標準IO:帶有緩衝機制

28.網絡編程基礎

  1. 服務器的IP地址和端口號必須是固定值

29.數據庫

         建立和打開數據庫:sqlite3 stu.db

         在數據庫裏建表:>create table student(

                                               >id integer primary key,

                                               >name text,

                                               >sex integer);

         以及其他的插入,查看等操作

30.窗口操作(ncurses)

  1. 創建子窗口
  2. 清空子窗口
  3. 銷燬子窗口
發佈了16 篇原創文章 · 獲贊 13 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章