A. 什麼是精通c語言
僅僅學好不叫精通。
精通C語言,就我看來至少要達到以下幾點:
應用——能夠用C語言隨心所欲地實現能想到的任何功能,包括各種演算法、應用特例等等;
了解——對C語言的缺陷有全面的了解,對各種環境下C語言的特性如數家珍;
改進——對C語言進行自己的修訂和改進;
離棄——對C語言了解如此透徹,以至於開始深入探求其它語言。
在我看來,以此為標准,中國能稱得上精通C語言的不超過千人。或許我還太樂觀了。
B. C語言有什麼作用,能做什麼,學到什麼程度才算精通
C語言是比較底層的程序語言,主要是用來編寫一些底層的軟體(比如操作系統)。理論上當然C語言可以做任何事情,但是只是理論上而已。比如,要去一個地方,可以走路,可以坐車,可以坐飛機。有些地方坐飛機或者汽車是去不了的,但是只要是陸地,基本上沒有走路到不了的吧。C語言就基本上處在走路的位置了。
C語言本身很簡單,很容易可以精通。但是,語言只是個工具。一把小刀在我手裡可能只能削蘋果,在小李手裡,那是威力巨大呀。計算機系統/演算法/協議等等才是真正意義的武功,C語言只是把刀。
C. 學習C語言究竟要怎麼樣才算精通
C語言裡面東西從易到難也多,先要入門,掌握基本的幾個東西, 背根本沒用的,頂多有點印象,舉例Helloworld程序, stdio.h是什麼意思, standard input output的縮寫,就是基本輸入輸出,#include 字面意思 包含了這個工具, 有這個工具,你才能在命令行標准列印字元數字。總之就是理解,背這種方法對於時間不多的你等於浪費時間,推薦C語言之父的 C教程。《The C Programming Language》也就是這本書,慢慢看,看不懂的邊寫例子邊反復看。一直反復看,配合好的視頻教程, 我之前看過的一個入門級別的《好爽,C語言》他講的做入門就很好。
本文採用思維導圖的方式撰寫,更好的表述了各知識點之間的關系,方便大家理解和記憶。這個總結尚未包含C語言數據結構與演算法部分,後續會陸續更新出來,文中有漏掉的知識點,還請大家多多指正。
總體上必須清楚的:
1)程序結構是三種: 順序結構 、選擇結構(分支結構)、循環結構。
2)讀程序都要從main()入口, 然後從最上面順序往下讀(碰到循環做循環,碰到選擇做選擇),有且只有一個main函數。
3)計算機的數據在電腦中保存是以二進制的形式. 數據存放的位置就是 他的地址.
4)bit是位 是指為0 或者1。 byte 是指位元組, 一個位元組 = 八個位.
易混淆的概念:
1)編譯預處理不是C語言的一部分,不佔運行時間,不要加分號。C語言編譯的程序稱為源程序,它以ASCII數值存放在文本文件中。
2)#define PI 3.1415926; 這個寫法是錯誤的,一定不能出現分號。
define a 1+2 define a (1+2)
a=a*a=1+2*1+2=5 a=a*a=3*3=9
3)每個C語言程序中main函數是有且只有一個。
4)在函數中不可以再定義函數。
5)演算法:可以沒有輸入,但是一定要有輸出。
6)break可用於循環結構和switch語句。
7)逗號運算符的級別最低,賦值的級別倒數第二。
知識難點:
1)指針部分。
2)數組部分.
3)函數棧幀的創建與銷毀。
4)可變參數列表。
這些難點:我都有專門的博客詳細介紹了,大家可以自行查看:
學習C語言的幾個建議:
1. 找個東東帶你入門。這個東東可以是老師,可以是書籍,可以是視頻,可以是講義,可以是一切的東東。如果是老師,最好是經歷過實際編程項目的人,他們經驗多,可以教會你很多。學校里的老師嘛,很多都是理論夢想家,恐怕教不出你實際的東西。書籍,我建議盡量看國外大牛寫的,國內的教材還是少看為好!這里我說下譚教授的教材。我當初學習C語言時教材就是教授的教材,寫的比較通俗易懂,最起碼把我領進了門。當入門了以後,想進一步提高自己的水平,就不要死摳著教授的教材了,可以看看國外大牛們的書了。
2. 入門了,當你坐在電腦前,你不一定會立即就能寫出代碼。不過沒關系,你可以先從敲一些很簡單的代碼開始練起。給自己找一些簡單的小需求,比如高校里的課程設計要求做的項目啊,自己去網上找一些別人提的需求啊等。尤其現在有很多的開源項目,你可以多看看人家的思路和技巧;
3. 多總結,多分享。你在編程中,肯定會遇到很多困難,走了很多彎路,把它們寫出來,總結出來,拿出來跟別人討論,這期間肯定有人會鄙視你,嘲笑你的技術,別放心上,誰沒有個菜鳥期,他們生下來就是高手嗎?
4. 參與到項目中。這個項目不管是公司分配的也好,不管是開源的也好,用心去做,做的過程慢慢琢磨,慢慢摸索,不斷向周圍的人請教,學習!
其實說了這么多,無非就是兩個字「練習」,四個字「持之以恆」!很多人就是沒有那個心坐下來,堅持不下去。
D. 精通c語言是達到什麼程度
精通的話,先做個大項目再說。編譯器的錯誤和庫函數的錯誤能找得出來。理解至少一個版本的C語言的標準例如C99。我覺得說精通至少要寫一個類似gcc或者lcc的編譯器功能全部具備,那基本上對C語言的全部語法和語義都了解就可以算精通了。我寫過20多年C語言的程序,但不敢稱精通,因為還有太多的語法現象不能理解。當年的《新編C語言大全》,是那個時代精通C語言的標志。作者對C語言,乃至當時各各版本的編譯器的bug都了如指掌。現在的C語言更加復雜,例如充分了解內聯匯編__asm,內聯inline,易變volatile,函數指針等如何能提高C語言的效率又不會讓編譯器出錯是相當復雜的問題。如果你對我提到的東西都很熟悉,那麼你的C語言可以說已經初步了解了。
E. C語言要學多久才可以比較精通
一般來說,一個月能掌握c的基本的語法規則和一些簡單的演算法
想要精通,那就難了,很多經典的演算法,還有mfc等需要老長時間才能知道