almost 3 years ago

00. Pointers & Array

09. Formated IO

10. Structures Unions

11. File Processing

12. Data Structures


I. Call by value V.S Call by reference

II. 指標 V.S 反參照

  • 指標 : 記錄地址,記錄記憶體位址(address)
  • 反參照 : 依照記憶體位址(address),尋找對應的值(value)

III. 結構陣列

  • 陣列,其資料性質呈一致性,元素與元素之間的記憶體位址是相鄰的。
  • 結構,可自定的特定型態,其可以集合不同型態的變數,在同一個結構中。
  • 結構陣列,相同結構型態的一連串的元素。

IV. 文字檔

  • 開檔 : FILE* file = fopenf(檔案名稱, 開檔指令);
  • 讀檔 : fscanf, fgets, fgetc, feof
    • fscanf(FILE* file, 格式化字串, 變數 ...); //依據格式化字串, 讀檔
    • fgets(字串, 讀取每一行的長度, FILE* file); //一次讀一行字串
    • char fgetc(FILE* file); //一次讀一個字元
    • feof(FILE* file); //讀到結束字元
  • 寫檔 : fprintf, fputs, fputc
    • fprintf(FILE* file, 格式化字串, 變數 ...); // 寫變數到檔案中
    • fputs(字串, FILE* file); // 一次寫一字串到檔案中
    • fputc(char c, FILE* file); // 一次寫一個字元到檔案中
  • 關檔 : fclose(FILE* file) // 關閉檔案讀寫串流
  • sscanf(字串, 格式化字串, 變數 ... ); // 從一個較長的字串, 依據格式化字串, 讀取對應的格式到變數中

V. 二元檔

  • 開檔
  • 讀檔 : fread
  • 寫檔 : fwrite
  • 關檔
  • 指定讀寫位置 : fseek
記憶體 硬碟
變數 v -
檔案 - v
文字檔 二元檔
讀檔 fscanf fread
寫檔 fprintf fwrite

VI. 自動變數 V.S 動態配置

  • 自動變數 : char array01[100] = {'\0'};
    • function 在 stack 中結束時,自動會釋放記憶體空間
  • 動態配置 : char* array02 = (char*) malloc(sizeof(char) * (100));
    • 需要透過 free(array02); 釋放記憶體空間

VII. memory leak 記憶體遺漏

  • stack, heap, global

VIII. 放大縮小陣列,Resize

IX. 鏈結串列

  • 新增節點在最前頭
  • 新增節點在非最前頭
  • 刪除節點在最前頭
  • 刪除節點在非最前頭
  • 搜尋

陣列與鏈結串列的優缺點比較

時間 空間
陣列 浪費
鏈結串列 節省

X. 格式化輸出 formatting output with printf

  • %d, %lf, %p, %%, %x, %c, %s

XI. 整數相除

← Arduino - 第一支程式 Web - Bootstrap - 第一步驟 →
 
comments powered by Disqus