C/C++

C 語言學習筆記 (一):C 語言的基本介紹及特點

學習書籍:C 語言學習手冊 第四版。作者: 洪維恩

這是一篇記錄自己學習 C 語言的過程,算是給自己看的筆記,所以這裡面的內容,是我整理書中我認為重要的部分,然後用自己的方式重新寫一遍,如果有圖,我會理解完,再自己畫出來,內容肯定會和課本上有出入,若有錯誤,或是理解錯的地方,希望能讓我知道。

在之前的文章已經將 Visual Studio 裝好 (連結),現在正式開始啟動自己的 C 語言學習計畫。


C 語言概述

C 語言是一種通用程式語言,目前廣泛應用到程式軟體開發或是嵌入式系統上,由 Dennis Ritchie 博士在 1972 年時,以 B 語言為基礎,在貝爾實驗室設計、開發出來的程式語言。作為一套歷史悠久的程式,其他程式語言也都有 C 語言的概念或思維存在,也是學校最常作為程式課程的語言之一。

C 語言的特點

  • 高效率編譯式語言
  • 介於中高階語言之間
  • 可攜性高 (跨平台能力較高)
  • 靈活控制流程 (能夠寫出結構化或模組化的程式)

在機器中如何執行程式語言?

一般來說,原始程式碼需先轉換成機器碼,才能讓程式正確執行。通常轉換程式分成直譯器 (interpreter) 及編譯器 (Compiler)。

何謂直譯器

直譯器會逐行轉換原始程式碼,若遇到錯誤會直接中斷,直到錯誤修正再繼續執行。由於每次執行都要一行一行進行轉換,因此執行速度、效率較差。

何謂編譯器

編譯器會先檢查程式語法正確性,再將其轉換成可執行檔。每次修改都需要重新進行編譯,才能更新可執行檔的內容。經過編譯的程式不須再進行轉換,因此效率比直譯器要高出許多。

編譯與執行的過程

編譯過程中會產生目的檔 (object file)。當編譯器進行編譯時,除了檢查語法正確性之外,還需要將標頭檔連結進來,檢查完成之後就會產生目的檔。產生目的檔之後,再由連結器 (linker) 去連接函式庫進來,連結在一起之後,製作出可執行檔 (.exe) 出來。

最基本的 C 語言程式架構

/* 標頭檔*/
#include<stdio.h>
#include<stdlib.h>

/* 主程式 */
int main() {
        printf("Hello world!!");
        return 0
}

可以大致分為標頭檔及主程式

標頭檔是用來引入函式庫;主程式是用來規劃整個程式流程控制的地方。

除此之外,還有副函式及陣列定義等等進階用法。

變數

變數是用來存放資料到記憶體的方法,也是程式最常用的操作。

在 C 語言中,設定變數時,必須給定資料型態,編譯器才能配置變數給記憶體。
不同於 Python 或是 MATLAB,這樣更能確實掌控變數

int a; /*宣告整數型態的變數 a*/

名稱宣告的限制

  • 第一個字必須是英文字母 (不能是數字,但是可以使用底線)
  • 不能用標點符號
  • 有區分大小寫
  • 不能含有空格
  • 不能用 C 語言的關鍵字

宣告方式:

/* 直接宣告變數型態跟值 */
int num1 = 1;

/* 先宣告變數型態 - 1 */
int num2;
num2 = 2;

/* 先宣告變數型態 - 2 */
int num3, num4;
char ch;
num3 = 3;
num4 = 4;
ch = &#039;a&#039;;

識別字及關鍵字

識別字是定義的變數名稱或是函數名稱

關鍵字是 C 語言的保留字,像是 if、for、else、goto ……等等之類的

留下一個回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *