一個(gè)資深C加加工程師說如何學(xué)習(xí)C語言

談及C語言,我想C語言功能強(qiáng)大都應(yīng)該知道、應(yīng)用廣泛,一旦掌握了后,你就可以理直氣壯地對(duì)他人說“我是電腦高手!”,而且以后若是再自學(xué)其他語言就顯得輕而易舉了。憂慮的是,C語言般博大精深,太難學(xué)了。其實(shí)就筆者認(rèn)為C語言并非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,配合一套教材。那么學(xué)C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談?wù)勅绾螌W(xué)習(xí)C語言或者說學(xué)習(xí)C語言應(yīng)從哪幾方面著手。


了解一些基本知識(shí)

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六二六,八七一,九一六 】邀請(qǐng)碼凌云,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

一.C語言的背景

就個(gè)人感觸,無論學(xué)習(xí)哪門語言首先應(yīng)該了解一下自己所學(xué)語言的背景,也可以說它的發(fā)展史。

C語言屬于高級(jí)程序語言的一種,它的前身是“ALGOL”。其創(chuàng)始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時(shí)是帶有很大的局限性,因?yàn)樗荒苡糜赨NIX系統(tǒng)上。然而隨著科學(xué)技術(shù)的進(jìn)步,計(jì)算機(jī)工業(yè)的發(fā)展,C語言逐漸脫離UNIX。1987年美國(guó)標(biāo)準(zhǔn)化協(xié)會(huì)制定了C語言的國(guó)際標(biāo)準(zhǔn),簡(jiǎn)稱“ANSI C”,從此以后它便成為一種廣泛使用的程序語言。C語言的優(yōu)點(diǎn)很多,主要的有如下四點(diǎn):

1.兼?zhèn)涓呒?jí)語言與低級(jí)語言的優(yōu)點(diǎn),屬于一種中間語言。

2.它是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,非常適合結(jié)構(gòu)化程序設(shè)計(jì)。

3.有較豐富的數(shù)據(jù)類型、運(yùn)算符以及函數(shù)供以選用。

4.直接與內(nèi)存打交道,使修改、編輯其他程序與文檔變得輕松,簡(jiǎn)單。

二.二大語系二種不同的學(xué)習(xí)方法

筆者學(xué)習(xí)過很多程序語言,例如:C,C++(C語言的擴(kuò)展),QBASIC,VB(BASIC的可視化),javascript,JSCRIPT ,VBSCRIPT,JAVA,ASP,F(xiàn)OXPRO,PERL等等,就本人實(shí)踐所得,其實(shí)高級(jí)程序語言分為兩大語系。一路是以C為主的程序語言,例如:javascript,JAVA等,這類語言在函數(shù)的調(diào)用,程序語句的書寫,循環(huán)的控制都極為相似。另一路是以BASIC為首的程序語言,例如:FOXPRO,VBSCRIPT等,此類語言同樣具有相似的函數(shù)調(diào)用,程序語句書寫以及循環(huán)控制,但與C語系是不同的。因此若是您以前是從QBASIC起家的,那么在學(xué)習(xí)C語言前最好是先洗洗腦,千萬不要把學(xué)習(xí)BASIC的方法以及思路用在C身上。

講到這里,我想大家對(duì)C語言一定有了感性認(rèn)識(shí)吧!下面讓我們?cè)偕A一下,全方位親密接觸它。學(xué)習(xí)C語言必須從以下四點(diǎn)入手,也就是說,只要你能掌握這四點(diǎn)的內(nèi)容,那么基本上就大功告成了。

1、入門后多看代碼

在有一定基礎(chǔ)以后一定要多看別人的代碼。 注意代碼中的算法和數(shù)據(jù)結(jié)構(gòu)。 畢竟學(xué)C之后的關(guān)口就是算法和數(shù)據(jù)結(jié)構(gòu)。提到數(shù)據(jù)結(jié)構(gòu),指針是其中重要的一環(huán),絕大多數(shù)的數(shù)據(jù)結(jié)構(gòu)是建立在指針之上的,如鏈表、隊(duì)列、樹、圖等等,所以只有學(xué)好指針才能真正學(xué)好C。別的方面也要關(guān)注一下,諸如變量的命名、庫函數(shù)的用法等等。有些庫函數(shù)是經(jīng)常用到的。對(duì)于這些函數(shù)的用法就要牢牢記住。

2、要自己動(dòng)手

編程序是個(gè)實(shí)干的活,光說不練不行。剛開始學(xué)的時(shí)候可以多練習(xí)書上的習(xí)題。 對(duì)于自己不明白的地方,自己編個(gè)小程序?qū)嶒?yàn)一下是最好的方法,能給自己留下深刻的印象。 自己動(dòng)手的過程中要不斷糾正自己不好的編程習(xí)慣和認(rèn)識(shí)錯(cuò)誤。有一定的基礎(chǔ)以后可以嘗試編一點(diǎn)小游戲,照著編作為練習(xí)。基礎(chǔ)很扎實(shí)的時(shí)候,可以編一些關(guān)于數(shù)據(jù)結(jié)構(gòu)方面的東西。之后.....學(xué)匯編、硬件知識(shí)。

3、選擇一個(gè)好的編譯器

GCC或者VS都是一個(gè)號(hào)的選擇

4、關(guān)于養(yǎng)成良好的編程習(xí)慣

(1) 在比較復(fù)雜的代碼后面要有注釋。 如果光溜溜一堆代碼,別人就不可能看懂你的代碼,而且也不利于查找錯(cuò)誤。除非你一直編東西給自己看。能在代碼里說明白的就一定要在代碼里體現(xiàn)。比如變量名、函數(shù)名,在命名的時(shí)候盡量說明是干什么用的。

(2)注意語句的嵌套不能過長(zhǎng),一般來說,一段代碼里Tab要少于8個(gè)。 簡(jiǎn)單說就是語句最多8個(gè)嵌套。 對(duì)于新手來說,這個(gè)標(biāo)準(zhǔn)還要下降。有一個(gè)好習(xí)慣是,把主函數(shù)盡量寫簡(jiǎn)短。經(jīng)??吹絼e人的代碼是主函數(shù)只有幾行,幾個(gè)函數(shù)調(diào)用,而定義全在主函數(shù)外部。這樣一是減少了主函數(shù)內(nèi)部的嵌套,二是比較精簡(jiǎn),容易讀懂。

(3)注意語句的選擇。并不是分支語句就用if循環(huán)就用while、for。在適當(dāng)?shù)那闆r下switch和do while語句也是要用的。在某些時(shí)候,switch語句比if語句更加精練明了,而do while比while少一個(gè)循環(huán)。

很多人對(duì)學(xué)習(xí)C語言感到無從下手,經(jīng)常問我同一個(gè)問題:究竟怎樣學(xué)習(xí)C語言?我是一個(gè)教師,已經(jīng)開發(fā)了很多年的程序,和很多剛剛起步的人一樣,學(xué)習(xí)的第一個(gè)計(jì)算機(jī)語言就是C語言。經(jīng)過這些年的開發(fā),我深深的體會(huì)到C語言對(duì)于一個(gè)程序設(shè)計(jì)人員多么的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優(yōu)秀高效的程序,這簡(jiǎn)直就是天方夜譚。為什么C語言如此重要呢?

第一:C語言語法結(jié)構(gòu)很簡(jiǎn)潔精妙,寫出的程序也很高效,很便于描述算法,大多數(shù)的程序員愿意使用C語言去描述算法本身,所以,如果你想在程序設(shè)計(jì)方面有所建樹,就必須去學(xué)它。

第二:C語言能夠讓你深入系統(tǒng)底層,你知道的操作系統(tǒng),哪一個(gè)不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個(gè)里外的,如果你不懂C語言,怎么可能深入到這些操作系統(tǒng)當(dāng)中去呢?更不要說你去寫它們的內(nèi)核程序了。

第三:很多新型的語言都是衍生自C語言,C++,Java,C#,J#,perl...哪個(gè)不是呢?掌握了C語言,可以說你就掌握了很多門語言,經(jīng)過簡(jiǎn)單的學(xué)習(xí),你就可以用這些新型的語言去開發(fā)了,這個(gè)再一次驗(yàn)證了C語言是程序設(shè)計(jì)的重要基礎(chǔ)。還有啊,多說一點(diǎn):即使現(xiàn)在招聘程序員,很多考試都是考C語言,你想加入it行業(yè),那么就一定要掌握好C語言。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容