• Techo

[程式學習] 為什麼要學習C語言,C語言的優點與好處以及與C++的差異

更新日期:2019年8月4日

C語言是一個古老的語言

我們常聽到有人說學習C語言非常好

並且幾乎所有的電機資工科系在大一時就會必修C語言程式課程

在科技業的面試往往也都是使用C語言來當作白板題

可見C語言對於訓練程式能力有多麼重要

可以確定的是

如果你把C語言完整學會的話

尤其是指標(pointer)的操作

你可以使用C語言的觀念去學會任何一種其他語言

C語言堪稱結構性語言裡最難的語言也不為過


C語言本身屬於高階語言

也就是其語法可以像是我們在說英文句子一樣使用一些單字

像是if-else等等

但C語言的的發明原由是為了拿來撰寫作業系統

其特色在於對於記憶體空間的直接存取

很方便但也同時很危險

一旦沒有處理好程式很容易當掉

而C語言本身的語法比起C++或是其他語言來說非常的少

這也代表了我們不用記住一大堆關鍵字就可以運用C語言

對於記憶力不好的人是一件好事呢


在現在的時代仍然有需多程式只能靠C語言來完成

比如說嵌入式系統

或是講究運行效率的程式

嵌入式系統是在沒有作業系統的環境下所完成

其使用的編譯環境多半可以直接看見C語言編譯成組合語言的指令

組合語言就是純粹給CPU看的語言了

所以在寫給嵌入式系統的C語言多半心中都會對組合語言有個底

那為何要寫出高效率的程式需要用到C語言呢

應該說其他種程式設計出各種方便的語法(syntax suger)

越是方便的東西速度也就越慢

因為其中可能會有需多的資料搬移以及parameter parsing

C/C++相對於其他語言

為了效率的考量規範上顯得較為寬鬆

很多基於物件導向特性的新語言

為了增加了安全和提供某些狀況下的便利性,

將會設下過多的限制以及預設立場

這些動作就很可能反變成了累贅

即使是同樣的事情編譯成組合語言就會明顯看到程式的執行量不一樣

這樣我們就要去學習C語言嗎


那C語言與C++或是C#的差異在哪

相同的點在於這三種程式語言都可以用到指標

並且都必須先編譯成機器語言才能執行

但以程式的類型來看C和C++是完全不一樣的

C++和C#屬於物件導向程式語言(OOP)

歸納程式所想要解決的問題再加以物件化

飲水要思源,C++一開始其實是從C轉變而來的

在C++一開始被開發出來時

C++的編譯器是先將C++程式變成C程式再變成機器語言

到了後來C++快速發展了相當多的語法

才變成C++擁有自己的編譯器

而C++相容C語言這件事大家都知道

為了程式的安全性C++也新增了不少特性

最耳熟能詳的大概就是reference了

比較進階一點將會碰觸到overloading、virtual、polymorphism

以及STL的使用

一直到現在C++仍然在發展中


而C語言屬於結構化程式語言

從一開始設計程式的思維就不太一樣

C語言的思考方式偏重於資料運算和記憶體存取的動作

在撰寫每一行的時都必須保有空間的概念

分配過的記憶體空間沒有用到時就必須釋放

全部的東西都必須自己管理

這也是C程式速度較快的原因


說了這麼多

如果不清楚自己要選擇甚麼程式語言的話

可以參考我想學程式,但該從哪種語言入門?


#微控制器 #電機 #資工 #開發板 #線上教學 #專職家教 #家教 #程式語言 #程式設計 #教育 #家教人生 #工程師 #電腦程式 #轉職 #興趣培養 #進修 #學習 #學程式 #一對一教學 #一對一課程 #一對一服務 #clanguage #轉職


Screen Shot 2018-11-05 at 12.06.31 PM.pn
  • Instagram - White Circle
  • Google+ - White Circle
  • Facebook - White Circle

Contact Us

Techo私人程式家教

官方LINE ID : @tutortecho

zh-Hant.png

© Copyright 2018 by Sherry Wu and Techo Chao.

Proudly created with Wix.com,

but page loading is too slow,so I don't recommend it.