
- C程式設計教程
- C - 首頁
- C語言基礎
- C - 概述
- C - 特性
- C - 歷史
- C - 環境設定
- C - 程式結構
- C - Hello World
- C - 編譯過程
- C - 註釋
- C - 詞法單元
- C - 關鍵字
- C - 識別符號
- C - 使用者輸入
- C - 基本語法
- C - 資料型別
- C - 變數
- C - 整數提升
- C - 型別轉換
- C - 型別強制轉換
- C - 布林值
- C語言中的常量和字面量
- C - 常量
- C - 字面量
- C - 轉義序列
- C - 格式說明符
- C語言中的運算子
- C - 運算子
- C - 算術運算子
- C - 關係運算符
- C - 邏輯運算子
- C - 位運算子
- C - 賦值運算子
- C - 一元運算子
- C - 自增和自減運算子
- C - 三元運算子
- C - sizeof運算子
- C - 運算子優先順序
- C - 其他運算子
- C語言中的決策
- C - 決策
- C - if語句
- C - if...else語句
- C - 巢狀if語句
- C - switch語句
- C - 巢狀switch語句
- C語言中的迴圈
- C - 迴圈
- C - while迴圈
- C - for迴圈
- C - do...while迴圈
- C - 巢狀迴圈
- C - 無限迴圈
- C - break語句
- C - continue語句
- C - goto語句
- C語言中的函式
- C - 函式
- C - 主函式
- C - 按值呼叫函式
- C - 按引用呼叫函式
- C - 巢狀函式
- C - 可變引數函式
- C - 使用者自定義函式
- C - 回撥函式
- C - return語句
- C - 遞迴
- C語言中的作用域規則
- C - 作用域規則
- C - 靜態變數
- C - 全域性變數
- C語言中的陣列
- C - 陣列
- C - 陣列的特性
- C - 多維陣列
- C - 將陣列傳遞給函式
- C - 從函式返回陣列
- C - 可變長陣列
- C語言中的指標
- C - 指標
- C - 指標和陣列
- C - 指標的應用
- C - 指標運算
- C - 指標陣列
- C - 指標到指標
- C - 將指標傳遞給函式
- C - 從函式返回指標
- C - 函式指標
- C - 指向陣列的指標
- C - 指向結構體的指標
- C - 指標鏈
- C - 指標與陣列
- C - 字元指標和函式
- C - 空指標
- C - void指標
- C - 野指標
- C - 解引用指標
- C - 近、遠和巨型指標
- C - 指標陣列的初始化
- C - 指標與多維陣列
- C語言中的字串
- C - 字串
- C - 字串陣列
- C - 特殊字元
- C語言中的結構體和聯合體
- C - 結構體
- C - 結構體和函式
- C - 結構體陣列
- C - 自引用結構體
- C - 查詢表
- C - 點(.)運算子
- C - 列舉(或enum)
- C - 結構體填充和打包
- C - 巢狀結構體
- C - 匿名結構體和聯合體
- C - 聯合體
- C - 位域
- C - typedef
- C語言中的檔案處理
- C - 輸入 & 輸出
- C - 檔案I/O(檔案處理)
- C預處理器
- C - 預處理器
- C - 指令
- C - 預處理器運算子
- C - 宏
- C - 標頭檔案
- C語言中的記憶體管理
- C - 記憶體管理
- C - 記憶體地址
- C - 儲存類
- 其他主題
- C - 錯誤處理
- C - 可變引數
- C - 命令執行
- C - 數學函式
- C - static關鍵字
- C - 隨機數生成
- C - 命令列引數
- C程式設計資源
- C - 問答
- C - 快速指南
- C - 速查表
- C - 有用資源
- C - 討論
C語言 - 概述
C 是一種通用、高階語言,最初由 Dennis M. Ritchie 開發,用於在貝爾實驗室開發 UNIX 作業系統。C 最初於 1972 年在 DEC PDP-11 計算機上實現。
1978 年,Brian Kernighan 和 Dennis Ritchie 釋出了 C 的第一個公開描述,現在稱為 K&R 標準。
UNIX 作業系統、C 編譯器以及基本上所有 UNIX 應用程式都已用 C 編寫。C 現在已成為廣泛使用的專業語言,原因如下:
- 易於學習
- 結構化語言
- 它生成高效的程式
- 它可以處理低階活動
- 它可以在各種計算機平臺上編譯
關於 C 的事實
C 是為了編寫一個名為 UNIX 的作業系統而發明的。
C 是 B 語言的繼任者,B 語言大約在 1970 年代初推出。
該語言於 1988 年由美國國家標準學會 (ANSI) 正式化。
UNIX OS 完全是用 C 編寫的。
如今,C 是使用最廣泛和最流行的系統程式語言。
大多數最先進的軟體都是使用 C 實現的。
如今最流行的 Linux OS 和 RDBMS MySQL 都是用 C 編寫的。
為什麼要使用 C 語言?
C 最初用於系統開發工作,特別是構成作業系統的程式。C 被用作系統開發語言,因為它生成的程式碼執行速度幾乎與用匯編語言編寫的程式碼一樣快。
C 的一些使用示例可能包括:
- 作業系統
- 語言編譯器
- 彙編程式
- 文字編輯器
- 印表機後臺程式
- 網路驅動程式
- 現代程式
- 資料庫
- 語言直譯器
- 實用程式
C 涵蓋了程式設計的所有基本概念。它是學習面向物件程式設計(如 C++、Java、.Net 等)的基礎或母程式語言。許多現代程式語言(如 C++、Java 和 Python)借鑑了 C 的語法和概念。
它提供了對硬體的細粒度控制,使其效率極高。因此,C 通常用於開發系統級程式,例如設計 作業系統、OS 核心等,也用於開發文字編輯器、編譯器、網路驅動程式等應用程式。
C 程式是可移植的;因此,它們可以在不同的平臺上執行,而無需進行重大修改。
C 在程式設計歷史程序中作為一種基礎程式語言發揮了關鍵作用。然而,與更現代的語言相比,其在應用程式開發中的普及程度有所下降。這可能是由於其低階特性以及存在提供更多預先存在的抽象和功能的高階語言。然而,在效能最佳、系統資源精細管理以及可移植性迫切需求等因素至關重要的領域,程式語言 C 的使用仍然不可或缺。
C語言的優點
以下是 C 語言的優點:
效率和速度 - C 以其高效能和效率而聞名。它可以讓你在低階水平上使用記憶體,以及允許直接訪問硬體,使其成為需要速度和經濟資源使用的應用程式的理想選擇。
可移植性 - C 程式可以在不同的平臺上編譯和執行,而只需進行最少的或無需修改。這種可移植性是由於該語言已標準化並且編譯器可用於全球各種作業系統。
接近硬體 - C 允許透過使用 指標 和低階操作來直接操作硬體。這使得它適合於系統程式設計和開發需要對硬體資源進行細粒度控制的應用程式。
標準庫 - 對於諸如 輸入/輸出操作、字串 操作和數學計算之類的常見任務,C 帶有一個大型標準庫,它透過利用預先構建的函式來幫助開發人員更有效地編寫程式碼。
結構化程式設計 - C 有助於將程式碼組織成模組化且易於理解的 結構。使用 函式、迴圈 和 條件語句,開發人員可以生成清晰易於維護的程式碼。
過程式語言 - C 遵循過程式正規化,對於某些型別的程式設計任務,這種正規化通常更簡單、更直接。
通用性 - C 語言是一種通用的程式語言,可用於各種型別的軟體,例如系統應用程式、編譯器、韌體、應用程式軟體等。
C語言的缺點
以下是 C 語言的缺點/不足之處:
手動記憶體管理 - C 語言需要手動記憶體管理,其中開發人員必須顯式地負責分配和釋放記憶體。
沒有面向物件特性 - 如今,大多數程式語言都支援 OOPs 特性。但 C 語言不支援它。
沒有垃圾回收 - C 語言不支援垃圾回收的概念。開發人員需要手動分配和釋放記憶體,這可能容易出錯並導致記憶體洩漏或記憶體使用效率低下。
沒有異常處理 - C 語言不提供任何用於處理異常的庫。開發人員需要編寫程式碼來處理所有型別的異常。
C語言的應用
以下是 C 語言的應用:
系統程式設計 - C 語言用於開發靠近硬體的系統軟體,例如作業系統、韌體、語言翻譯器等。
嵌入式系統 - C 語言用於嵌入式系統程式設計,用於各種裝置,例如微控制器、工業控制器等。
編譯器和直譯器 - C 語言非常普遍地用於開發語言編譯器和直譯器。
資料庫系統 - 由於 C 語言對於低階記憶體操作高效且快速。它用於開發 DBMS 和 RDBMS 引擎。
網路軟體 - C 語言用於開發網路軟體,例如協議、路由器和網路實用程式。
遊戲開發 - C 語言廣泛用於開發遊戲、遊戲應用程式和遊戲引擎。
科學和數學應用 - C 語言在開發需要科學計算的應用程式方面非常高效。諸如模擬、數值分析和其他科學計算的應用程式通常使用 C 語言開發。
文字編輯器和 IDE - C 語言用於開發文字編輯器和整合開發環境,例如 Vim 和 Emacs。
C 程式設計入門
要有效地學習 C 語言,我們需要首先了解其結構。每種程式語言都有其程式設計結構。C 程式的典型結構包括幾個部分。以下步驟展示了常規 C 程式的 C 結構:
包含標頭檔案
包含必要的標頭檔案,其中包含可在一個或多個原始碼檔案中使用的函式、常量和宏的宣告。一些常用的標頭檔案如下:
stdio.h - 提供輸入和輸出函式,如 printf 和 scanf。
#include <stdio.h>
stdlib.h - 包含涉及記憶體分配、rand 函式和其他實用程式函式的函式。
#include <stdlib.h>
math.h - 包括數學函式,如sqrt、sin、cos等。
#include <math.h>
string.h - 包含用於操作字串的函式,例如strcpy、strlen等。
#include <string.h>
ctype.h - 用於測試和對映字元的函式,如isalpha、isdigit等。
#include <ctype.h>
stdbool.h - 定義布林資料型別以及true和false值。
#include <stdbool.h>
time.h - 包含用於處理日期和時間的函式。
#include <time.h>
limits.h - 定義整數型別的各種實現特定限制。
#include <limits.h>
宏和常量
定義將在整個程式中使用的任何宏或常量。宏和常量是可選的。
示例
#include <stdio.h> #define PI 3.14159 int main() { float radius = 5.0; float area = PI * radius * radius; printf("Area of the circle: %f\n", area); return 0; }
輸出
Area of the circle: 78.539749
C 中的全域性宣告
全域性宣告是可選的
int globalVariable; void sampleFunction();
宣告將在程式的不同部分使用的全域性變數和函式。請檢視以下示例:
#include <stdio.h> // Global variable declaration int globalVariable; int main() { // Rest of the program return 0; }
主函式
每個 C 程式都必須有一個main函式。它是程式的入口點。請檢視以下示例:
int main() { float radius = 5.0; float area = PI * radius * radius; printf("Area of the circle: %f\n", area); return 0; }
C語言中的函式
根據需要定義其他函式。主函式可以呼叫這些函式。請檢視以下示例
#include <stdio.h> // Global function declaration void samplefunction(); int main() { // Programming statements return 0; } // Global function definition void samplefunction () { // Function programming statements implementation }
C 程式可以從 3 行到數百萬行不等,並且應寫入一個或多個副檔名為“.c”的文字檔案;例如,hello.c。您可以使用“vi”、“vim”或任何其他文字編輯器將您的 C 程式寫入檔案。
本教程假設您知道如何編輯文字檔案以及如何在程式檔案中編寫原始碼。