主要是講c 得入門注意事項
目 錄 1 愉快的開始-hello world..................................................................................... 14 1.1 include頭文件包含............................................................................................ 14 1.2 main函數............................................................................................................ 14 1.3 注釋.................................................................................................................... 14 1.4 {}括號,程序題和代碼塊.................................................................................. 14 1.5 聲明.................................................................................................................... 14 1.6 C語言自定義名字的要求................................................................................... 15 1.7 printf函數......................................................................................................... 15 1.8 return語句........................................................................................................ 15 1.9 System系統調用................................................................................................ 15 1.9.1 System返回值在windows和unix下的不同,.............................................. 15 1.9.2 POSIX............................................................................................................. 15 1.10 C語言編譯過程,gcc參數簡介............................................................................ 16 1.10.1 C語言編譯過程........................................................................................... 16 1.10.2 -E預編譯..................................................................................................... 16 1.10.3 -S匯編......................................................................................................... 16 1.10.4 -c編譯......................................................................................................... 16 1.10.5 鏈接............................................................................................................. 16 1.11 操作系統結構..................................................................................................... 17 1.11.1 用戶模式...................................................................................................... 17 1.11.2 內核模式...................................................................................................... 17 1.12 64位,32位系統區別....................................................................................... 18 1.12.1 CPU內部結構與寄存器............................................................................... 18 1.12.2 RISC與CISC CPU構架.............................................................................. 18 1.12.3 SPARC,x86與ARM................................................................................. 18 1.13 匯編語言............................................................................................................. 18 1.13.1 I386匯編簡介............................................................................................ 18 1.13.2 VS反匯編.................................................................................................... 19 1.14 IDE工具............................................................................................................. 19 1.14.1 QT常用快捷鍵............................................................................................ 19 1.14.2 VS常用快捷鍵............................................................................................. 19 1.14.3 VS斷點,調試............................................................................................. 19 2 C語言中的數據類型.................................................................................................. 19 2.1 常量.................................................................................................................... 19 2.1.1 #define........................................................................................................... 19 2.1.2 const............................................................................................................... 19 2.2 字符串常量......................................................................................................... 20 2.3 二進制數、位、字節與字................................................................................... 20 2.4 八進制................................................................................................................. 20 2.5 十六進制............................................................................................................. 20 2.6 原碼.................................................................................................................... 21 2.7 反碼.................................................................................................................... 21 2.8 補碼.................................................................................................................... 21 2.9 sizeof關鍵字...................................................................................................... 22 2.10 int類型.............................................................................................................. 22 2.10.1 int常量,變量............................................................................................ 22 2.10.2 printf輸出int值......................................................................................... 23 2.10.3 printf輸出八進制和十六進制..................................................................... 23 2.10.4 short,long,long long,unsigned int.................................................. 23 2.10.5 整數溢出...................................................................................................... 23 2.10.6 大端對齊與小端對齊................................................................................... 23 2.11 char類型............................................................................................................ 24 2.11.1 char常量,變量.......................................................................................... 24 2.11.2 printf輸出char.......................................................................................... 24 2.11.3 不可打印char轉義符................................................................................. 24 2.11.4 char和unsigned char............................................................................... 25 2.12 浮點float,double,long double類型................................................................. 25 2.12.1 浮點常量,變量.......................................................................................... 25 2.12.2 printf輸出浮點數....................................................................................... 25 2.13 類型限定............................................................................................................. 25 2.13.1 const........................................................................................................... 25 2.13.2 volatile........................................................................................................ 26 2.13.3 register....................................................................................................... 26 3 字符串格式化輸出和輸入.......................................................................................... 26 3.1 字符串在計算機內部的存儲方式....................................................................... 26 3.2 printf函數,putchar函數................................................................................ 27 3.3 scanf函數與getchar函數................................................................................ 28 4 運算符表達式和語句.................................................................................................. 29 4.1 基本運算符......................................................................................................... 29 4.1.1 =...................................................................................................................... 29 4.1.2 +...................................................................................................................... 29 4.1.3 –...................................................................................................................... 29 4.1.4 *...................................................................................................................... 29 4.1.5 /...................................................................................................................... 29 4.1.6 %.................................................................................................................... 29 4.1.7 +=................................................................................................................... 29 4.1.8 -=.................................................................................................................... 29 4.1.9 *=................................................................................................................... 29 4.1.10 /=................................................................................................................ 30 4.1.11 %=.............................................................................................................. 30 4.1.12 ++............................................................................................................... 30 4.1.13 --.................................................................................................................. 30 4.1.14 逗號運算符.................................................................................................. 30 4.1.15 運算符優先級.............................................................................................. 30 4.2 復合語句............................................................................................................. 31 4.3 空語句................................................................................................................. 31 4.4 類型轉化............................................................................................................. 31 5 條件分支語句............................................................................................................. 31 5.1 關系運算符......................................................................................................... 31 5.1.1 <...................................................................................................................... 31 5.1.2 <=................................................................................................................... 31 5.1.3 >...................................................................................................................... 32 5.1.4 >=................................................................................................................... 32 5.1.5 ==................................................................................................................... 32 5.1.6 !=.................................................................................................................... 32 5.2 關系運算符優先級.............................................................................................. 32 5.3 邏輯運算符......................................................................................................... 32 5.3.1 &&................................................................................................................... 32 5.3.2 ||.................................................................................................................... 32 5.3.3 !....................................................................................................................... 33 5.4 if......................................................................................................................... 33 5.5 if else.................................................................................................................. 34 5.6 if else if.............................................................................................................. 34 5.7 switch與break,default.................................................................................... 35 5.8 條件運算符?..................................................................................................... 36 5.9 goto語句與標號................................................................................................ 36 6 循環語句.................................................................................................................... 36 6.1 while................................................................................................................... 36 6.2 continue............................................................................................................. 37 6.3 break.................................................................................................................. 37 6.4 do while.............................................................................................................. 37 6.5 for...................................................................................................................... 37 6.6 循環嵌套............................................................................................................. 37 7 數組............................................................................................................................ 38 7.1 一維數組定義與使用.......................................................................................... 38 7.2 數組在內存的存儲方式...................................................................................... 38 7.3 一維數組初始化.................................................................................................. 38 7.4 二維數組定義與使用.......................................................................................... 39 7.5 二維數組初始化.................................................................................................. 39 8 字符串與字符數組..................................................................................................... 39 8.1 字符數組定義..................................................................................................... 39 8.2 字符數組初始化.................................................................................................. 39 8.3 字符數組使用..................................................................................................... 40 8.4 隨機數產生函數rand與srand......................................................................... 40 8.5 用scanf輸入字符串........................................................................................... 40 8.6 字符串的結束標志.............................................................................................. 41 8.7 字符串處理函數.................................................................................................. 41 8.7.1 gets................................................................................................................. 41 8.7.2 fgets函數....................................................................................................... 41 8.7.3 puts函數........................................................................................................ 42 8.7.4 fputs函數....................................................................................................... 42 8.7.5 strlen,字符串長度........................................................................................ 42 8.7.6 strcat,字符串追加........................................................................................ 42 8.7.7 strncat,字符串有限追加.............................................................................. 43 8.7.8 strcmp,字符串比較...................................................................................... 43 8.7.9 strncmp,字符串有限比較............................................................................ 43 8.7.10 strcpy字符串拷貝...................................................................................... 43 8.7.11 strncpy字符串有限拷貝............................................................................. 43 8.7.12 sprintf,格式化字符串............................................................................... 43 8.7.13 Sscanf函數................................................................................................. 44 8.7.14 strchr查找字符........................................................................................... 44 8.7.15 strstr查找子串........................................................................................... 44 8.7.16 strtok分割字符串....................................................................................... 44 8.7.17 atoi轉化為int............................................................................................ 45 8.7.18 atof轉化為float......................................................................................... 45 8.7.19 atol轉化為long......................................................................................... 45 9 函數............................................................................................................................ 45 9.1 函數的原型和調用.............................................................................................. 45 9.2 函數的形參與實參.............................................................................................. 45 9.3 函數的返回類型與返回值................................................................................... 46 9.4 main函數與exit函數與函數的return語句.................................................... 46 9.5 多個源代碼文件程序的編譯............................................................................... 47 9.5.1 頭文件的使用.............................................................................................. 47 9.5.2 #include與#define的意義........................................................................... 47 9.5.3 #ifndef與#endif............................................................................................ 47 9.6 函數的遞歸......................................................................................................... 48 9.6.1 遞歸的過程分析.......................................................................................... 48 9.6.2 遞歸的優點.................................................................................................. 52 9.6.3 遞歸的缺點.................................................................................................. 52 1 指針............................................................................................................................ 52 1.1 指針.................................................................................................................... 52 1.1.1 指針的概念.................................................................................................. 52 1.1.2 指針變量的定義.......................................................................................... 52 1.1.3 &取地址運算符............................................................................................... 52 1.1.4 無類型指針.................................................................................................. 52 1.1.5 NULL............................................................................................................... 53 1.1.6 空指針與野指針.......................................................................................... 53 1.1.7 指針的兼容性.............................................................................................. 53 1.1.8 指向常量的指針與指針常量........................................................................ 54 1.1.9 指針與數組的關系....................................................................................... 54 1.1.10 指針運算...................................................................................................... 54 1.1.11 通過指針使用數組元素............................................................................... 55 1.1.12 指針數組...................................................................................................... 55 1.1.13 指向指針的指針(二級指針).................................................................... 55 1.1.14 指向二維數組的指針................................................................................... 57 1.1.15 指針變量做為函數的參數........................................................................... 57 1.1.16 一維數組名作為函數參數........................................................................... 57 1.1.17 二維數組名作為函數參數........................................................................... 58 1.1.18 const關鍵字保護數組內容......................................................................... 58 1.1.19 指針做為函數的返回值............................................................................... 58 1.1.20 指向函數的指針.......................................................................................... 59 1.1.21 把指向函數的指針做為函數的參數............................................................ 60 1.1.22 memset,memcpy,memmove函數............................................................ 61 1.1.23 指針小結...................................................................................................... 63 2 字符指針與字符串..................................................................................................... 64 2.1 指針和字符串..................................................................................................... 64 2.2 通過指針訪問字符串數組................................................................................... 64 2.3 函數的參數為char *.......................................................................................... 64 2.4 指針數組做為main函數的形參......................................................................... 65 3 內存管理.................................................................................................................... 65 3.1 作用域................................................................................................................. 65 3.1.1 auto自動變量................................................................................................. 65 3.1.2 register寄存器變量....................................................................................... 65 3.1.3 代碼塊作用域的靜態變量........................................................................... 66 3.1.4 代碼塊作用域外的靜態變量........................................................................ 66 3.1.5 全局變量...................................................................................................... 66 3.1.6 外部變量與extern關鍵字.......................................................................... 66 3.1.7 全局函數和靜態函數................................................................................... 66 3.2 內存四區............................................................................................................. 66 3.2.1 代碼區......................................................................................................... 67 3.2.2 靜態區......................................................................................................... 67 3.2.3 棧區............................................................................................................. 67 3.2.4 棧溢出......................................................................................................... 68 3.2.5 堆區............................................................................................................. 68 3.3 堆的分配和釋放.................................................................................................. 70 3.3.1 malloc............................................................................................................. 70 3.3.2 free.................................................................................................................. 70 3.3.3 calloc:............................................................................................................. 70 3.3.4 realloc............................................................................................................. 71 4 結構體,聯合體,枚舉與typedef......................................................................... 71 4.1 結構體................................................................................................................. 71 4.1.1 定義結構體struct和初始化....................................................................... 71 4.1.2 訪問結構體成員.......................................................................................... 71 4.1.3 結構體的內存對齊模式............................................................................... 72 4.1.4 指定結構體元素的位字段........................................................................... 72 4.1.5 結構數組...................................................................................................... 72 4.1.6 嵌套結構...................................................................................................... 73 4.1.7 結構體的賦值.............................................................................................. 73 4.1.8 指向結構體的指針....................................................................................... 73 4.1.9 指向結構體數組的指針............................................................................... 73 4.1.10 結構中的數組成員和指針成員.................................................................... 73 4.1.11 在堆中創建的結構體................................................................................... 74 4.1.12 將結構作為函數參數................................................................................... 74 4.1.13 結構,還是指向結構的指針........................................................................ 74 4.2 聯合體................................................................................................................. 75 4.3 枚舉類型............................................................................................................. 75 4.3.1 枚舉定義...................................................................................................... 75 4.3.2 默認值......................................................................................................... 76 4.4 typedef................................................................................................................ 76 4.5 通過typedef定義函數指針................................................................................ 76 5 文件操作.................................................................................................................... 77 5.1 fopen.................................................................................................................. 77 5.2 二進制和文本模式的區別................................................................................... 77 5.3 fclose................................................................................................................. 78 5.4 getc和putc函數................................................................................................ 78 5.5 EOF與feof函數文件結尾................................................................................. 78 5.6 fprintf,fscanf,fgets,fputs函數........................................................................ 78 5.7 stat函數............................................................................................................ 78 5.8 fread和fwrite函數.......................................................................................... 79 5.9 fread與feof...................................................................................................... 79 5.10 通過fwrite將結構保存到二進制文件中........................................................... 79 5.11 fseek函數........................................................................................................... 80 5.12 ftell函數............................................................................................................ 80 5.13 fflush函數......................................................................................................... 80 5.14 remove函數........................................................................................................ 81 5.15 rename函數....................................................................................................... 81 6 基礎數據結構與算法.................................................................................................. 82 6.1 什么是數據結構.................................................................................................. 82 6.2 什么是算法......................................................................................................... 82 6.3 排序.................................................................................................................... 83 6.3.1 冒泡排序...................................................................................................... 83 6.3.2 選擇排序...................................................................................................... 83 6.4 查找.................................................................................................................... 83 6.4.1 順序查找...................................................................................................... 83 6.4.2 二分查找...................................................................................................... 83 6.5 鏈表.................................................................................................................... 84 6.5.1 單向鏈表定義.............................................................................................. 84 6.5.2 單向鏈表數據結構定義............................................................................... 85 6.5.3 單向鏈表的實現.......................................................................................... 85
完整的文檔下載:
C語言講義v1.0.doc
(4.2 MB, 下載次數: 11)
2016-12-11 11:23 上傳
點擊文件名下載附件
|