C語言給初學者的學習感受比較難易把控,特別是莫名其妙的指針錯誤,更是措手不及。引入N多的庫才實現好比圖形設計,甚是麻煩。程序員
因此不少人「躲過」C語言的學習,直接去學上層語言,如:PHP,js,JAVA。數據庫
可是最後會發現,事情並無預想中的那麼好,不少東西出現的莫名其妙,難以理解......好比上層語言中的字符串就是很好的例子,編程
不少很好的用法的出現雖然給使用者帶來了方便,可是爲何會那麼的出現?字符串究竟是怎麼來的?編程語言
這些問題卻更加的神祕了,所以剩下的也就是背誦,一堆的背誦,加大了學習負擔,下降了學習興趣,陷入了一個個的苦惱之中。函數
因此,想躲,卻躲不過。由於C語言學習是走進編程領域必備的一條路。學習
在大學時候開設C語言,可能「動機不純」,並無給你解釋清楚爲何要學,或者解釋了你當時沒感受也沒印象。測試
學會C語言也不是期末的時候背誦幾個考試題,也不是上級測試最後一個編程題,甚至拿到滿分所能衡量的。那純粹是爲了拿學分,爲了應付考試,離學會還有很大的距離。spa
學習C語言的意義:編程行業的必備學習基礎。設計
雖然它引入N多的庫能夠用來開發比較複雜的圖形程序,如:俄羅斯方塊,如:操做數據庫的界面,可是它的意義不在於開發圖形界面。指針
由於一樣的功能,可能你要開發好多天,可是別人PS或者寫幾個js就能夠超過你的效果,
這樣的效果固然不是用C語言去實現的,不是不能,是不該該,不然就相似答非所問、文不對題了。
作嵌入式界面,你在不斷的引入各類各樣的庫,錯誤一大片可能還沒出現效果,別人QT幾下子弄的比你還漂亮不少。
因此C語言的學習目的不在於開發出多麼炫酷的效果。而在於給你看破編程的紅塵,讓你懂得上層語言中突如其來的那些使用應該能怎麼來。
它雖然沒有彙編語言那麼詳細明瞭的給你展現內存分配過程,如:main函數怎麼被調起來的,函數調用過程當中內存變化詳情,中斷處理過程的詳細變化。可是它能夠給你展現上層一點的概念如:
爲何要有指針,爲何指針長相那樣,字符串是怎麼來的,鏈表是什麼?
怎麼就出現了鏈表?這些就對上層語言有很好的指導意義,可讓你在學上層語言的過程當中不怎麼學就會了。由於它基本上就是「還原原始」的使用方式。因此你使用起來比較麻煩和枯燥,好比:
char* p="ningcaichen";
當你p[0]='N';
的時候就會出錯,就比上層語言用起來麻煩多了。但這並不能說明C語言原始就沒有意義,相反頗有學習和指導意義,它能告訴你字符串是怎麼出來的。
當你曉得了以後,你就知道上面原來是在常量區定義的字符集合,而指針是不能操做常量的,所以出錯,那麼上層語言是怎麼作到p[0]的?
其實上層語言並無違背這個規矩,而是從新申請地址,從新拷貝那些字符內容,所以就能夠解決了。可是上層語言只是給你展現結果,隱藏了這些會錯誤的狀況,因此就莫名其妙的出現了使用方便的字符串了。
所以上層語言雖然好用,可是卻更加神祕了。若是不理解,你剩下的也就只能是背誦了。背多了頭就大...
學習C語言也不是說必須用C語言去找工做,而是方便學某一門需求普遍的上層語言,如:PHP。因此,學習和求職不少時候是兩碼事,一個有長遠規劃的編程愛好者,是會摒棄編程語言的門戶之見,作到融會貫通...
客觀規律就是這樣,編程行業是一個融會貫通的行業,科技不分界限,要想在上層語言中有所建樹,成爲精英,最後仍是要回頭,落下的早晚是要補回來!
若是你也想成爲程序員,想要快速掌握編程,趕忙關注小編加入學習企鵝圈子吧!
裏面有資深專業軟件開發工程師,在線解答你的全部疑惑~編程語言入門「so easy」
免費學習資料: