進度條

線上程式教學課程: C語言 - 近代程式語言的基礎

C語言幾乎是當代所有語言的基礎,無論是Ruby, Python(cPython), PHP 或是 Node.js所依賴的V8引擎,都含有大量的C語言語法所構成。本課程從零開始,目標為學習C語言語法,有能力用C語言實作有效率的程式,並為演算法與晶片控制鋪路

Loading

特價 NT$: 1600

原價 NT$: 2400

優惠至:2018/11/18

課程包含:

終生於平台觀看 詳情

5個章節,77堂影片

18小時以上的課程時間

這堂課尚未在其他服務上架

3、6期信用卡付款零利率 詳情

課程敘述

C語言幾乎是當代所有語言的基礎。無論是Ruby, Python(cPython), PHP 或是 Node.js所依賴的V8引擎,裡面都是大量的C語言與C++語法所構成。更不用說常見的作業系統Linux核心和他的變化 - Android系統,甚至是蘋果的iOS與MacOS系統,都含有大量的C語言及其家族程式。

 

即使現在較多人提倡的是快速開發,消耗硬體資源換取工程師寶貴的時間。但還是會有很多進階的情況,是必須進入到核心的部分去調校程式。

在系統資源較缺乏的裝置上 - 例如物聯網相關家電產品,C語言(及其家族程式)幾乎是唯一的工業 / 商業選項。

畢竟網站主程式多半是只給一台電腦伺服器使用,而產品型商品程式則相反,量產幾乎都是萬台起跳。單一裝置即使只節省一點零件成本,集合起來的利潤也會相當的高。

 

所以就工業/商業上,即使新興語言在撰寫與理解上佔有優勢,也很難在短時間取代C語言這"物理"上的優勢。

課程難度

入門,此課程不需任何程式經驗。

請參閱課程需求

課程需求

1. 有一台電腦

2. 對電腦運作理論有興趣

3. 不排斥撰寫沒有使用者圖像介面(GUI)的程式

4. 有一顆不畏懼艱難的心

課程目標

這堂課的課程目標為學習C語言語法,有能力單用C語言實作有用且有效率的程式。

並且為演算法與電腦晶片控制鋪路。

課程特點

1. 學習C語言語法

2. 使用C語言寫出執行程式

3. 了解記憶體位址與指標關係

4. 了解程式運作基本原理

第一章 (總長1.3小時)

C語言介紹與安裝
keyboard_arrow_down
  • play_arrow

    01. C語言介紹

    13:33
  • lock

    02. [補充] QT與LGPL與商業授權

    09:53
  • play_arrow

    03. [Mac] 安裝QT

    10:13
  • play_arrow

    04. [Windows] 安裝QT

    11:29
  • play_arrow

    05. [Windows] DevC++ 安裝與檔案介紹

    14:04
  • play_arrow

    06. [Windows] 安裝CodeBlocks

    16:54

第二章 (總長0.3小時)

修正QT Creator疑難雜症
keyboard_arrow_down
  • play_arrow

    01. 用QTCreator建置C語言專案與視窗設定介紹

    08:34
  • play_arrow

    02. [Windows] QTCreator 視窗設定額外注意事項與課程資源使用

    05:37
  • play_arrow

    03. [Mac] QTCreator 編譯錯誤,stdio h找不到(常發生於MacOS 系統升級後)

    02:47

第三章 (總長8.2小時)

語法實作與綜合練習
keyboard_arrow_down
  • play_arrow

    01. C語言課程教學方向

    04:15
  • play_arrow

    02. 程式進入點與為什麼程式可以運作

    17:52
  • play_arrow

    03. include與Header檔,看似簡單的stdio_h

    14:29
  • play_arrow

    04. 宣告char與string,利用printf印出變數

    12:23
  • lock

    05. 變數(一), 整數Integer

    22:03
  • lock

    06. 變數記憶體空間與sizeof, 初探位元與位元組

    20:06
  • lock

    07. 整數加減法與一元運算子和執行順序

    24:11
  • lock

    08. 整數乘法與浮點數Float的問題

    13:44
  • lock

    09. 基本型態(二) - 浮點數Float與雙精度浮點數Double

    13:15
  • lock

    10. 除法與餘數

    10:01
  • lock

    11. 基本型態的強制轉型

    11:51
  • play_arrow

    12. 2進位與16進位,位元與位元組所代表的意思(bit, byte)

    28:40
  • lock

    13. 條件判斷if-else與布林值(Boolean)

    08:25
  • lock

    14. 關係運算子與else if

    10:13
  • lock

    15. 邏輯運算子(&&, ||, !)

    18:54
  • lock

    16. 整理條件判斷式

    11:31
  • lock

    17. Switch-case and #define

    13:52
  • lock

    18. While, do_while 迴圈與 return

    20:23
  • lock

    19. array 陣列1

    16:26
  • lock

    20. array 陣列2 - 雙重矩陣

    22:01
  • lock

    21. for-loop 迴圈

    08:05
  • lock

    22. break、continue迴圈,利用亂數random抽獎遊戲來加深印象

    25:30
  • lock

    23. 函數、函式庫與API概念簡介

    13:24
  • lock

    24. 簡單函數宣告

    10:33
  • lock

    25. 函數回傳值

    13:24
  • lock

    26. 全域變數與變數的區域性

    11:57
  • lock

    27. 常量變數(const)

    05:14
  • lock

    28. 函數傳入值(parameters, arguments)

    10:23
  • lock

    29. Struct 結構基本用法與字串複製(strncpy)

    15:12
  • lock

    30. 自製Strncpy函數

    25:32
  • lock

    31. 使用Struct當作函數傳入值與回傳值

    13:21
  • lock

    32. 利用Struct與迴圈建立學生列表(包含Struct記憶體使用問題)

    09:33
  • lock

    33. 建立自製Header檔與C檔做專案管理

    16:07

第四章 (總長6.4小時)

指標與常碰到的C語言專案寫法
keyboard_arrow_down
  • play_arrow

    01. 指標與檔案章節介紹

    06:42
  • play_arrow

    02. 檔案新增與開啟(fopen)

    20:27
  • lock

    03. 檔案文字寫入與讀取(fprinf, fscanf, fclose)

    14:07
  • lock

    04. 複製檔案與移動檔案指標(fread, fwrite, fseek, ftell)

    22:37
  • lock

    05. 複製檔案效率與硬碟寫關係(fgetc, fputc, fflush, gettimeofday)

    18:51
  • play_arrow

    06. 指標與記憶體位置(一)

    20:24
  • lock

    07. 指標與記憶體位置(二)

    14:37
  • lock

    08. 動態配置記憶體與釋放(malloc, free)

    18:37
  • lock

    09. 指標位移量與指標型態關係

    11:00
  • lock

    10. BMP點陣圖檔案格式介紹

    19:09
  • lock

    11. 寫程式讀取BMP點陣圖資訊

    26:51
  • play_arrow

    12. 自製簡易BMP圖檔產生程式

    09:47
  • lock

    13. [Windows] 解決MinGW造成的圖片不能開與dll檔不見問題

    06:06
  • lock

    14. [Windows] 解決圖片顏色錯誤問題與file open造成的分行錯誤

    08:31
  • lock

    15. typedef 與 Header整理

    09:26
  • lock

    16. 建立BMP圖檔產生函數

    09:00
  • lock

    17. 執行檔輸入值與雙重指標(argc, argv)

    18:17
  • lock

    18. 字串轉換為數字與輸入安全性(常見考試題目)

    29:39
  • lock

    19. 字串安全性與顏色轉換,Bit運算的實例

    33:02
  • lock

    20. 初探函數指標(function pointer)

    06:45
  • lock

    21. typedef與函數陣列

    09:23
  • lock

    22. 重構函數,取得結果的另一種方法

    17:13
  • lock

    23. 利用陣列的方式產生struct變數

    10:33
  • lock

    24. 利用Enum表示目的,為建立函式庫重構程式

    20:57

第五章 (總長2.2小時)

範例實作 - 字幕檔自動產生器
keyboard_arrow_down
  • play_arrow

    01. 簡易字幕檔產生器範例介紹

    08:18
  • lock

    02. [QT] 利用QString與QTextEdit獲取字串

    12:46
  • lock

    03. [QT] QT檔案功能與C語言之間的關係

    09:36
  • lock

    04. [QT] 在QT或C++專案中加入純C檔案

    12:25
  • lock

    05. [QT] 使用QFileDialog選取路徑

    09:44
  • lock

    06. 程式碼移植與檔案讀取

    17:43
  • lock

    07. 初探鏈結串列概念(linked list)

    20:24
  • lock

    08. 完成移植

    06:55
  • lock

    09. 詳解讀取檔案

    11:15
  • lock

    10. Wav聲音原理解說

    09:40
  • lock

    11. [可略過] Wav聲音切分原理與可調參數

    12:43
  • 章節尚未完全完結,我們會持續更新!!

課程講師

縱裕

iOS 工程師 / Ruby On Rails 網站工程師

現職為iOS 工程師,但同時也在鑽研網站技術並且建立多個網站。
曾協助多個新創公司,範圍包含網站前端到桌面應用程式倉存管理與電子機關互動。
從網站架設,手機APP到系統底層都有豐富的經驗。
擅長不同系統架構的整合與創新想法的實現。

經歷:
進度條 技術顧問
Digilog.tw 網站與倉庫後台程式架構設計與建置
Zooe 線上教學平台 網站架構設計與建置
HelloStudy 楓禾留遊學網 設計與建置
Funlock 放樂工作室真實密室逃脫遊戲  - 魔鏡迷城 電子機關設計與製作
iOS App - Rock Click 節拍器
Nexcom ARM韌體與軟體工程師
Insyde BIOS工程師