❶ c語言學習路線
一,UNIX下C語言的學習路線。
工具篇
「公欲善其事,必先利其器」。編程是一門實踐性很強的工作,在以後的學習或工作中,將常常會與以下工具打交道, 下面列出學習C語言編程常常用到的軟體和工具。
(一)操作系統
在UNIX或Linux系統中學習C很方便,所以在開始的學習旅程前請先選擇一個UNIX或Linux操作系統。
目前可供個人免費使用的UNIX或Linux系統有FreeBSD、RedHat Linux、SUSE Linux等,而且在安裝包中還提供很多實用的工具,如:gcc, make等。
如果您一直使用Windows,身邊又沒有多餘的機器安裝UNIX,則可以使用VMware,通過VMware安裝虛擬系統。
(二)編譯工具
目前絕大多數Unix或Lnux系統都提供CC或GCC編譯器,最簡單的cc命令格式如下:
cc -o hello hello.c
在unix shell環境中敲入上面的代碼會將hello.c程序編譯成可執行文件hello。
make 工具如 GNU make、System V make 和 Berkeley make 是用來組織應用程序編譯過程的基本工具,但是每個 make 工具之間又有所不同。
大部分UNIX和Linux程序都是通過運行make來編譯的。make工具會讀取一個包含指令的文件(這個文件的名字通常都是 makefile 或 Makefile,不過後文中統一稱之為 「makefile」),並執行各種操作來編譯程序。
(三)調試工具
最簡單的調試工具:為程序添加列印語句
在對程序的運行機制有了一定的了解後,可以實用一些工具幫助進行調試,當然得學習一下這些工具得使用,如:dbx,gdb等。
還有一些內存工具可以幫查找內存泄漏或緩沖區溢出等一些問題,如:memwatch,yamd等
(四) 其他工具
1. vi或vim
Unix下文本編輯器。主要靠一堆命令來編輯文本文件,學Unix編程最好熟悉並熟練使用vi編輯器。
當然在實際工作中,可能需要一個集成編碼環境或一個功能強大的圖形化編輯工具。
2.netterm
最著名的網路終端軟體之一,可以使用它方便的連接到主機系統中。
3.Secure shell
一個支持ssh協議得客戶端工具,多數情況下用來連接linux系統。
書籍篇
「書是人類進步得階梯」。學習一門新的知識,當然要選擇幾本適合自己得書籍,下面介紹一些我自己學習C語言使用過的書籍:
1.《C primer plus》
推薦理由:適合作為入門書和基本函數查詢得參考資料。本書最新版為第五版,以ANSI C99為標准詳細介紹了C語言。
2.《The C programming_Language》
推薦理由:C語言之父得作品權威性毋庸置疑。雖然書籍出版時間比較老,好像也沒更新,不過仍不失為經典書籍,網上有這本書得英文電子版提供下載。
3.《C 專家編程》
推薦理由:本書可以幫助有一定經驗的C程序員成為C編程方面的專家,最關鍵的是本書寓教於樂,充分享受編程的樂趣。
4.《C缺陷與陷阱》
推薦理由:書中所揭示的知識能幫助繞過C語言自身得陷阱和缺陷,減少代碼中許多常見的Bug。
5.《unix環境高級編程》
推薦理由:既然是UNIX環境下C編程,就不得不說說UNIX編程書籍。Stevens先生的《unix環境高級編程》是竭力推薦的,也是案頭必備(如果對網路編程有興趣的,可以學習一下Stevens先生的《UNIX網路編程》兩卷,如果覺得還不過癮,可以再看看《TCP/IP詳解》三卷)。
6.《計算機編程藝術》
推薦理由:演算法大師得嘔心瀝血之作。計劃出版五卷書,目前好像已出版3卷。對演算法有興趣得可以研究一下。
過程篇
1.學習C語法
語法的學習對於一個具有編程底子的來說,就很輕鬆了;即使以前沒有學習過其他編程語言,我相信有2個星期,也能輕松搞定。
需要注意的是,不要太糾纏於語言的細節,比如:運算符優先順序與結合性的問題等。
2.學習C標准庫
ANSI C庫把函數分為不同的組,每個組都具有與之相關的頭文件。C語言標准庫相對於其他語言,比如C++,Java來說是非常短小精悍的,但首先應著重對以下庫進行學習:
ctype.h:字元處理
math.h:數學庫
stdio.h:標准I/O庫
stdlib.h:通用工具庫
string.h:字元串處理
time.h:時間和日期
如果想了解完成的ANSI C庫,可以購買相關的書籍,這些書籍一般會詳細介紹每個函數的用戶和一些注意點;
3.攻克C的難點
C語言聲明:
C語言的聲明確實覺得恐怖,比較晦澀難懂,而且聲明的形式和使用的形式還類似。比如如下的聲明恐怕就連很多熟悉C多年的程序員也不是一眼就能看出來的:
char * const * (*next)();
那麼有沒有一種好的記憶方法或規則來搞清楚呢,好像沒有,如果有的話也不是這樣折磨人了。不過可以看看《C專家編程》第三章的內容,或許會有所收獲。
也只能多學多練了,所謂熟能生巧嘛,希望這個問題不要在你的心靈上留下陰影。
數組與指針:
數組與指針的關系,在標准中並沒有作很詳細的規定,而且好多C入門的書籍在這個問題上並沒有給出很詳細的說明,所以會給人造成很多誤解。
對於這個問題,可以參考《C缺陷與陷阱》4.5節和《C專家編程》第4,9,10章,相信這裡面的內容搞透徹,以後就不會再被這個問題搞迷惑。
指針與內存:
如果以後編寫規模較大的程序,可能發現這個問題可能會是最大的煩惱,而且可能會是消耗最多調試時間的事項。
C版本的問題:
得特別小心該問題,最好不要的程序中混合使用不同版本C的特性,否則會帶來很迷惑的問題。如果一定要用,最好清楚自己在做什麼。
4. UNIX環境編程
學習了以上內容之後,就可以進行unix環境編程了。不過可能需要對操作系統理論有一點點的了解,這樣學起來會比較輕松一些。
Unix環境編程,應該著重IO和進程兩大塊內容。《Unix環境高級編程》中對Unix環境編程有著非常詳細且深入的論述,而且書中有大量實用性例子程序,不過可能得花上幾個月得時間,好好啃一啃了。
在扎實掌握以上內容,不代表得C語言學習支路已經完成,相反,才剛剛開始。以後需要用學到得知識去解決大量不同實際問題,在不斷得實踐過程中,會近一步加深對C的理解。有了以上基礎之後,會發現,在實踐過程中需要的其他知識,會非常快速的掌握。
二,Windows程序員的學習路線
1.當然要熟悉下C語言了 入門可以選用潭浩強的 《C程序設計》(當然最好能讀C Programming Language)特別要對其中的指針,結構體等東西一定要搞清楚了(要學好的很好至少要花費一個月時間) 為什麼要從C開始呢:<1> C好學 <2> 大多數的操作系統核心部分是用C開發的 <3> C的效率高且語言成熟
2.在1的基礎之上一定要認真學習一下數據結構 對C++程序員來說良好的數據結構可以讓一個程序員很輕松的完成程序設計 糟糕的數據結構可以把一個程序員累死 推薦書籍:嚴蔚敏的《數據結構(C語言版)》或北京大學的一本中C++版的數據結構 書中說到的每個主體在程序設計中都會用到 認真學好會對的以後的C++程序設計有太多的好處 (3個月時間)
3.學好了2之後可以學習下《C++ PROGRAM DESIGN》這本書初步介紹了C++和如何使用C++寫出Windows下的程序(要學好至少要花費3個月時間)
4.在3的基礎之上可以讀一本叫《Windows 95 程序設計》(它的最新版本是Programming Windows)這是一相Windows程序設計的領域的不朽之作(3個月時間) 通過2和3的學習已經成為了一個可以設計Windows程序的程序員了 要想更好的設計Windows程序設計 一定要藉助框架結構不可 為什麼:框架結構可以加快我們程序設計的速度 雖然使用框架使得我們的程序的效率低了那麼一點 但隨著當今計算機的運算能力的提升,不會感覺到這一點點的性能損失的反而會因為你使用的框架結構而使你的程序設計加快了速度 使用框架結構才算一個真正的VC++程序員
5.在4的基礎之上可以看一些簡單的MFC程序設計的書比如《Visual C++入門教程》之類的圖書 這可以使你能寫出一些帶有通用控制項的MFC程序 (1個月時間)
6.在5的基礎之上已經可以很快開發一個軟體了 但不了解MFC框架運行機制是很不好的 了解MFC的運行機制可以使以後的MFC程序設計工作做的更好 推薦書籍侯傑的《深入淺出MFC》 但這本書真的不適合初學者當你有了一定的開發經驗以後這本書對來說確實很好 若很熟悉Windows下的SDK程序設計並打算或已經開始使用MFC進行軟體開發 那這本書對來說再好不過了 (2個月時間)
7.在6的基礎之上可以看下這本書《VC++技術內幕》由潘愛民譯的 推薦看原著(3個月)
8.在以上基礎之上為了更好的使用VC++這個工具 推薦看一下《VC++6.0寶典》(3個月) 從開發工具的角度講這本書寫的很好
9.為了更好的工作可以參考一下VC++程序設計百例
10.之後可以看一下《Windows核心編程》 這本書很好的講解了Windows的編程 對你寫系統程序很有好處的 推薦看原版
11.只了解其形不算真正的了解 之後還要認真的讀一下Windows的內核源碼 相信WRK 很容易找到的 可以配合《深入解析Windows操作系統》《Windows內核原理與實現》和《Windows內核情景分析》
12.其它一些東東《COM原理》(潘愛民) OpenGL D3D VC的資料庫編程 圖形圖像 音視頻處理和網路都要有所了解和會使用
13.要做到一個好的程序員一定要對驅動程序有所了解所以寫一個文件驅動之類的東東是很有必要的
14.經過以上各步的學習完全成為一個優秀的Windows程序員了(前提是每一步要學好)
15.漏了一些重要的東東 編譯原理 匯編及 組成原理 和設計模式等也是很重要的東東 只有學好了這些才能明白語言為什麼要這樣組織才能高效。
❷ 學習C語言的步驟,詳細點
C語言是一種早期的計算機語言,最初誕生目的是為了提供一種基於UNIX系統的工作語言.但是,後來卻被越來越多的人發現它的優點與潛力.C本身比較接近底層,適合開發系統軟體甚至是操作系統.我個人也認為它是界於高級語言與匯編語言之間的中級語言.C語言是一門結構化語言(我認為主要是指它的控制結構如:if if-else while for等等).C程序設計上有提到"自頂向下,逐步深入".以函數為原子功能模塊.對於大型的程序來說模塊化是很重要的,有一句話說的很好"優質的程序首先就是便與人們之間的相互討論與交流,其次才是執行效率".當然我個人認為任何一名程序寫作者,都應該養成一種特定的思維方式,以程序的思維方式來思考程序的實現.前提就是要足夠的來了解計算機底層技術.要不我想就連學習都是很困難的,凡事都是一個思路的問題嘛.標準的來衡量,C應該算是高級語言陣營的一份子.可很多有C語言開發經驗的程序寫作者.通常親切的稱C為界於底級語言與高級語言之間的中級計算機語言.當然不是因為C比高級語言要差,之所以這么認為是因為C既具有高級語言的結構化與可理解性又具有低級語言的高效率.同時C的移植性也是非常不錯的,大家應該知道,越是接近硬體,接近底層的語言就越加的依賴硬體環境,也就是我們所說的設備相關性.C這一點做的是非常棒的.說了這些,在從另一個角度去分析C語言.當然每種語言都有它自身的優缺點,C也一樣.比如在現在高級語言與頂層技術的角度來看的話,C最大的缺陷就是Data與演算法的分離.舉一個例子: 對於一個擁有幾千行甚至上萬行Code的程序來說,如果修改Data,比如我在Structure中增加一個欄位,可能為此我的整個程序都要改動,這使得程序的可重用性大大降低.開發周期也大大的延長.但是在底層的角度來看這也正是C的優點.我為什麼要這么說呢?我個人認為在求解與實現一個小問題的時候,我們可以寫出一個通用的模塊處理不同的Data.當然比如某些經常用到的,基於數據結構的一些常用演算法我們可以寫出來在開發的時候我們可以直接把預先編寫的模塊插入到我們的程序中去,這不也是大大低了開發周期嗎?初學者完全可以根據自己的需求來編寫一個自定義庫.好了,說了這些,有些地方我理解錯了,還請各位指出來,交流是很重要的,前提是要把自己的心態放平.下面我將談論本問的重點,也就是如何來學習C語言,是給那些初學者讀的.
正題部分:
有人可能會說:學習還用你教啊,誰沒上過學啊.其實我今天要說的只是,站在一個過來人的角度,來分析與解釋學習C語言的過程中比較困難的地方.當然我個人也會對比較具體的問題進行解釋(個人看法).我一直在強調個人看法,我是想讓大家明白,對於同一個問題大家可能都很難達成統一的意見,希望批評的時候客氣點就好嘍!
初學者該看哪些書來入門:
在學習C語言之前,首先就要選擇一本教材,對於初學者,我個人並不建議去讀電子書籍,最好是買紙質書來學習.比如比較有名的"C程序設計"就很不錯,尤其是第二版.我也看過,比較適合中國人來初學.整本書都在全面系統的講解C的語法結構,構成C的語言元素包括:數據類型,支持的運算符,標識符(是由程序員按照命名規則起的名字,用於變數名,函數名,宏名等等),關鍵字(編譯系統用於實現C內部功能的詞,比如:轉向goto和中斷break等等)等.看完這本書你基本上可以寫一些簡單的小程序,當然是DOS下的程序.如果你想在進一步深入學習C的話,可以看"C陷阱與缺陷"這本書.寫這本書的作者是在Bell工作對C是非常精通的,應該算是大師級的人物了.如果你暫時不想深入C的話,也沒問題,因為此時你完全可以把C當作一種編程工具來使用,你要做的就是多寫Code來讓自己熟悉C語言.經驗是非常重要的,"經驗是檢驗真理的唯一方法".當然你不會紙上談兵,如果你有過多的開發經驗的話,就知道在紙上或最初的設想的Code拿到計算機上來實現,最終會發現有很多地方都是不合理的,之前是沒有辦法想像到的.在初學C的過程中,比如你會看"C程序設計"來初學C,當你學完每一章的時候要把習題來完成,這里就是考驗你學到的知識了,看看你應用能力怎麼樣?尤其是程序設計題目,比較有意思.哪裡不懂了.可以翻回去看書中的解釋.如果沒有解釋或你還是不明白,可以去問別人,與其他人交流. bbs,QQ或Google.直到你弄明白為止.當你把問題最終解決的時候,我敢打賭,此時你一定很興奮,或者是比較興奮.這個時候知識已經在你的大腦里了.
下面我為你推薦幾本不錯的關於C語言籍:
C編程規范
C語言大全第四版 (個人感覺不錯,裡面有提及C標准方面的東西)
C和指針
The C programming Language (經典著作)
如果你要看電子書的話,以上幾本書在Google上很容易就可以找到.
關於C語言的初步理解:
對於初學者,會有太多的疑問,原因是你的知識面太小.現在我為你解釋一些C相關的東西.目的是讓你能夠有一個大致清晰的方向,來給自己安排學習計劃.專業的來說,我們是或將是一名程序員,程序員當然就是要開發程序了.對於軟體開發方面我來解釋下術語:
C,C++,ASM,Basic,Java 這些是計算機語言.計算機語言很多,我就不多說了.
Visual C++,Visual Basic, Microsoft研發的開發環境,開發環境包括:編譯器,庫函數(每種C語言編譯器都支持標准庫,同時它們也會擴展自己的庫,所以很多比較以來庫函數實現的程序員,在轉向不同的開發環境的時候最初總是不使用的,會遇到很多問題),一些資源模板等等.Visual 就是可視的意思,後面的就是語言.Visual C++支持C與C++2種語言,是根據文件的擴展名來判斷採用哪種編譯內核.
什麼是"面向對象"與"面向過程"? 其實是2種完全不同的程序設計思想,C語言是面向過程語言,而C++是面向對象語言.在面向對象的語言中有"類(Class)"這個東西.C中沒有.對象是由類來派生的一個實例,相反類就象是一個模板.
什麼是SDK? SDK就是軟體開發工具包(Software Development Kit).指的范圍比較廣,通俗的說,凡是能夠與軟體開發過程占上邊的東西都屬於.比如:庫文件,參考資料,介面函數,當然語言也應該屬於.
DDK就是設備驅動程序開發工具包.
Turbo C: 這是一個比較精緻的C語言編譯器.
理論上來說任何一門語言都可以在任何一種操作系統上運行,前提是操作系統要支持.也就是我們所說的應用程序介面,比如Window API(Application Programming Interface),其實是Microsoft內部定義的介面函數用於實現一些Windows內部的功能.一些對象的描述術語,在不同平台上是不同的,比如:Windows下的"調用",經常被稱為"呼叫","返回"被稱為"傳回".
什麼是"演算法"? 你最初只需要知道演算法實際上就是對特定的Data進行運算的一段代碼而已.也可以認為在求解一道題目的時候,採取的方法與步驟的總稱.對於基本的C程序來說,實際上就是由Data與演算法來組成的.
什麼是"數據結構"? 如果要是系統的講解,還需要一本書"數據結構",簡單的說:是程序要處理的數據在內存中的存儲與組織的方式,分為:物理結構與邏輯結構.邏輯結構就是我們抽象化以後得到的大腦影象.
什麼是"函數庫"? 它們以文件的形式存儲,是預先定義好的函數的集合,我們的程序可以直接調用.當然前提是要包含它的頭文件(庫函數的原型聲明).這些函數是在靜態連接期間組成到.exe文件中去的.Windows又存在另一種庫,叫做動態連接庫(DLL).
GUI: 也就是"圖形用戶界面",就是我們在Windows上看到的,存在:菜單欄,滾動條與顯示區域的窗口.
GDI: 圖形設備介面,從程序寫作者的角度來看,其實GDI就是由上百個函數與數據形態和一些相關的數據結構所組成的.
學習C語言的全過程:
仔細想想,實際上學習C語言,最初是應該先學習C語言的基礎語法.也就是學習C語言的組成部分.一部分一部分的向下學.知識要一點一點的鞏固的.本人假設你學習C語言是看"C程序設計".我認為你應該先把C程序設計仔細的看一便,這樣你應該可以對整本書和C語言的整體組成結構有個大致的清晰了解.不要認為學習只是在看書,看一便就可以了.你應該學會記筆記,在記筆記的過程中,其實你就是在學習,從知識的分析,理解,歸納,到最後以自己的思維方式記下來,這整個過程就是把書中的知識抽象到你自己的腦袋裡.個人感覺學習效果非常好,不懂就問,要多多與人交流,要多思考,遇到問題自己先多想想,實在找不到問題出在哪,在去請教別人,不要有不懂的地方就直接去問別人,那樣對你沒太大的好處.其實要學會給自己安排適合自己的學習計劃,我大致來估計了一下,如果你每天能花4個小時安靜的,用心去學習的話,30天之內你應該可以掌握C語言了.其實在整個學習過程中你大多數時間都在看書,而不是面對電腦.在調試你的代碼之前,先在紙上把核心代碼大致寫出來,分析一下:程序的組成模塊(可以是一個函數或多個),由幾個函數來實現,介面的封裝.採用哪種數據結構更適合一些.關鍵在於演算法.在你的最終程序發布之前,最好把你的代碼行數減到最少.不要只想著把代碼寫多.過多的代碼對程序來說是負擔.你可以在Internet上下載一個文件(C語言經典例題.chm),裡面大致包含了上百個經典的例題.每一個例題都是C語言某部分的典型應用.花時間把這個文件中的所有例題代碼研究一下,最好能自己把代碼改善,以自己的方式來求解.以後你會發現你在寫一些應用程序的時候經常會有一些演算法.會涉及到我之前提到的例題.最後我認為你可以自己來寫C語言標准函數,比如strcpy(); strlen();strcat();最好不要過分依賴庫函數.
C語言學習的難點:
現在應該是已經講到一個重點的環節.很多網友都說學習C語言很難,我認為C中有些部分是比較復雜,難理解的.當然在你具有了豐富的開發經驗以後,這以不在是問題了.下面我個人會對我認為學習C的時候比較難學的地方進行我自己的闡述,如果哪裡不正確,還請各位指出:
指針的出現:
我想有很多初學者學習到指針那一章都感覺很難,下面我就以自己的想法來解釋下指針這個特殊的數據類型,
基本變數大家可能並不難理解,因為基本變數其內部存儲了同類型的常量,事實上指針也是變數,不過呢,這個變數和基本變數有點不一樣,那你又問了:是哪裡不一樣呢? 我告訴你,簡單的來理解其實普通的變數內部存儲了同類型的常量,而指針變數內部存儲的則是"同類型變數的首地址".這樣你能夠理解嗎,是很簡單的解釋,但不失本質.事實就是這樣的.如果你不理解"同類型變數的首地址"的話,我可以給你形象的來描述一下:
float Variable; //聲明一個單精度實型的變數
此時,編譯器已經給Variable分配了內存空間,結構如下:
__________
| |1001
|---------
| |1002
|---------
| |1003
|---------
| |1004
|---------
以上便是Variable的內存結構了,16位下的float佔用4個位元組,內存地址是線性編碼的,我們可以很容易的看出Variable的首地址就是他第一個單元的地址1001,好的,繼續向下看:
float *Pointer=&Variable; //聲明一個指向Variable的指針Pointer
_________
|1001 | 這是Pointer的內存結構
|_______|
我們的程序可以這樣來執行:
Variable=1.0;
直接給Variable賦值,我們稱為直接訪問.
也可以這樣執行:
*Pointer=1.0;
也可以通過指針變數來賦值,前面的*是間接運算符號,意思是求Pointer內部存儲地址所標識的內存單元.也就是Variable.此時,是賦值是通過間接訪問來實現的.可以這樣形象的描述:
________ (指向Variable) __________
|Pointer|------------------------------------>|Variable|
--------- ----------
以上應該是指針實現的基本解釋,很多優秀的程序寫作者都說指針是C語言中的精華,的確如此,很多優秀的程序寫作者寫程序都非常依賴指針,因為它很方便,實際上指針所訪問的對象是沒有限制的,他可以指向任何類型的變數,前提是只要我們知道內存地址.因此指針也並不安全,在開發網路程序的時候,盡量要少使用指針.下面我們在來看一下指針在數組中的使用.
數組中的指針:
簡單的來解釋下數組,數組結構在C中使用比較普遍,其實最常用的就是char 類型的數組,主要是用於字元串操作.實際上數組是"同類型變數的有限集合".我想這應該不難理解吧.數組在內存中佔用連續的內存單元(地址連續),來存儲數組中的每一個元素.數組是預先分配好指定長度的內存單元,供數組元素使用.它並不支持動態內存分配.在內存中想要唯一的確定數組,需要2個標識:入口地址(函數名)和結束標記('\0').有些語言並不向C語言這樣支持字元串結束標記,它們必須要另外聲明一個變數來標識尾元素的下標.那數組名其實就是這一組內存單元的首單元,他的地址就是整個數組的入口地址.此時應該明白了,數組名是一個指針,這樣理解沒有問題.不錯在具體操作的時候不允改變數組名的地址,也不符合實際要求.這樣就可以明白數組名是一個什麼 const Pointer(指針常量).我們可以這樣做:
int Array[10];
int *Pointer;
Pointer=Array;
for(i=0;i<10;++i)
Pointer==i;
以上代碼應該是沒問題吧,同類型的指針,完全可以勝任數組名的任務.一點問題沒有而且可以運行的很好.當然,我們可以進一步把代碼這樣來寫:
把
for(i=0;i<10;++i)
Pointer=i;
改成
for(i=0;i<10;++i,Pointer++)
*Pointer=i;
不好意思,我記不清了,指針的++運算是地址+1還是向後移動一個元素的位置,如果是地址+1的話,以上代碼在改成這樣:
for(i=0;i<10;++i,Pointer+sizeof(int))
*Pointer=i;
如果數組類型是char的話,那就更方便了,因為字元串存存在一個在尾元素之後的結束標記('\0'),下面給出一個簡單的代碼,應用char Pointer:
char * my_strcpy(char * dst, const char * src)
{
char * cp = dst;
while( *cp++ = *src++ ); // 注意運算符的優先順序與結合性
return( dst ); //返回新傳的指針
}
以上代碼實現字元傳Copy功能,代碼是不是很簡潔啊.如果不需要移動內存塊的話,我們完全可以通過交換指針(內存地址)來實現排序操作,其效率應該是很客觀的.補充一句:千萬要弄清楚,指針本身與指針所指向的變數不是一個單元.
❸ 學習編程需要多少時間呢
學習編程需要4個月左右,時間太短是學不會的,如果想學得深一點的話,需要學習2年左右。
在進行學習的時候,必須要先把握最基礎的知識,不然的話後期工作起來會感覺很難。
❹ c語言好學嗎
根據我個人學習 C 語言的體會就是:C語言一點都不難學!但是你首先必須要保證:(1)、你的電腦上安裝一個適合編程的C編譯器(例如:WINDOWS下面的是 MS VC++、如果使用的是 Linux 系統,安裝一個 gcc 編譯器);
(2)、然後你購買一本比較通俗易懂的教材,照著書上的每個章節的每一道例題、以及每一章的課後練習題,親自上機編寫、調試、直到編譯通過並運行每一個程序。
另外要特別注意的就是:如果你想能夠在較短時間內掌握 C 語言編程技巧,那麼絕對不能夠只是在紙上、書上閱讀程序。如果是那樣的話,那麼即使書上的內容講得再好,那也是絕對不能夠精通掌握 C 語言編程的(尤其是 C語言所特有的指針功能,是 C 語言全部內容中最為較難掌握的部分,這部分內容必須要依靠大量上機實習,才能夠深刻體會到:「指針即地址」的含義)。
❺ c語言一般要學多長時間
10分鍾就OK
學習所有的語言都是從不會到會再到精通
有些同志就會抱上一本老譚的C從封面開始看起,
看了半個月卻一點進展都沒有,而且會越看越糊塗.
學語言就應該先看常式,再寫測試程序,最後再看教材.
不要讓教材牽著鼻子走,那樣會沒有自己的方向.
從看會第一個常式,到模仿著寫出相似的程序,大概也就10分鍾吧.
要掌握一門語言不能一蹴而就,學習使用C語言5年甚至10年的程序員也不敢說完全掌握完全了解.
先說看常式,從簡單的開始看,目的就是100%的看懂.
有看不懂的地方盡量看教材,能不問別人就不要張嘴,
這點很重要,它會讓你的讀取能力直線上升.還有一點就是最好看老外的常式,人家的程序在思路上普遍比國內的要開闊,寫法也靈活,而且還能讓你養成良好的書寫習慣.
再說就是寫程序,分兩種情況,一種的目的是實現功能,再一種就是測試指令:如果目的是實現功能就不要和常式一模一樣,一定要求變,而且是多多變化,變得面目全非最好;再說就是測試指令的程序,對基本指令的全面了解是基本功,理解越透徹,程序就越精闢.很多程序中的錯誤就是因為對基本指令的功能不夠了解,比如指針和型參實參,在這個站點上的許多問題都是針對這2個知識點的,因為理解不透,造成運行結果答不到預期效果.如果寫一個針對這2個知識點的測試程序就能達到深刻理解的目的.
至於說學多久能派上用場,本人理解為夠用就好,90%以上的程序員都是邊學邊用.面對計算機行業的飛速變更,只有不斷學習才能有競爭力,所以掌握快速的學習能力是立足的根本.
不只C語言要這樣學,其他所有語言都要這樣學,慢慢的積累多了,自然能夠領會程序的精髓,了解程序的意境,達到新的境界.
腳踏實地,慢慢積累,切不要急功近利.
❻ 學C語言需要多久
相對於其他編程語言,C語言還是比較難的。初學者需要注意一下幾點:
一是學習順序
先從熟悉簡單的C語言語法開始入門,然後再循序漸進,學習C++語法,WIN32、MFC、QT、網路編程,資料庫、數據結構、演算法、COM、STL等。構建一個完整的C語言知識體系。這需要一個比較漫長的學習積累的過程。語法入門部分大概2-3個月,其他部分需要學習和工作中慢慢理解和消化了。
二是學習方法
人的知識80%是通過眼睛獲取的,但是學習編程有所不同,除了看書、看視頻之外,關鍵是要勤動手,勤動腦。通過做大量的練習、項目實戰不斷積累代碼量。只有代碼量足夠多了,項目做的多了,才能算是真正學會了。項目能否完成,就是衡量是否學會的唯一標准。後期就是代碼襲伍的質量和優化問題了,這個只能在項目工作中慢慢積累經驗了。
最後強調一點,很多人學不會編程是因為掉坑裡了。就是教程或者書上的知識點之間跨越太大,作為一個初學者很難自己摸索出來,前面的知識點沒有掌握判鄭,接著學習後面的知識,肯定是學不會了。目前絕大多數編程書籍和教程或多或少都有這樣的弊端。自學能力比較強的人可以通過各種方法,參考各種網上的資料自己解決。但是大多數自學能力不是很強的人,只能依賴老師、同學、同事或者朋友幫忙指導,或者報名培訓機構,老師指導完成了。學習編程通常需要一些好的學習資料拍沖或,包括紙質的書籍,視頻教程,課件,項目練習,代碼。零基礎入門的書籍推薦《明解C語言》、《C Primer Plus》,還有一本非常特別的匯編和C語言正向逆向結合的書編程達人內部教材《匯編、C語言基礎教程》也非常不錯,講解匯編和C語言的本質非常透徹,非常細致。視頻資料也是特別多了,各種視頻網站、論壇、自媒體都有,比如網易課堂、騰訊課堂、慕客網這些。還有一些論壇,比如CSDN、編程中國等。最重要的一點就是答疑服務,推薦愛達人的網站也很不錯,從零基礎入門到應用課程,配套的視頻、課件、代碼、項目、答疑服務都有,還可以兼職接單,學以致用。