回覆列表
-
1 # 大學生程式設計指南
-
2 # ZBLiu
一種程式語言要能立足,能成功,它就一定合乎邏輯、能夠自洽。題主承認它獲得了巨大成功,卻又指它詭異離奇、缺陷重重,這就是自己陷入不能自洽、不合邏輯的打臉窘境,不證自明:毛病沒有出在C語言,而是出在......那裡。
-
3 # 深思0506
第一次聽到有人這樣評價c語言,這種評價並不合理,也不客觀吧???不知道提問者是站在什麼角度來看待它,從而得出這樣的結論,要說詭異,除了二進位制機器碼,又有哪個語言能比彙編更詭異????陷阱更多???相反,假如你使用更高一級的語言來編寫底層的東西,會感覺更詭異,效率差的不是一星半點!C語言給予人們在操作計算機方面最大的自由度,
-
4 # beadle
哪個白痴問的問題?
計算機語言也屬於語言,因此具有一定的文科性質。而文學本身就是薛定諤的產物(讀者負責制,每個人看同一篇文章觀點不同)
因此,某些人看的缺陷,另些人看著就是好處。
舉個實際例子,c#中,不能呼叫其他執行緒的UI控制元件,要用invoke或者begininvoke轉換,其初衷是讓程式設計者明白所有權同異步。但有些人為了方便就用呼叫win32sdk,使用intptr的windowhandle去操作,就無須寫invokebegininvoke。
說白了就是藝高人膽大。
腳踏車是沒有汽車快。但腳踏車不燒油不耗電,停車不用找停車場,各有各的好處。
已經使用了C語言十幾年了,今天還在寫C語言程式碼,C語言算是很多程式語言祖師爺了,已經取得了巨大的成功但還是很多人對於C語言存在很大的偏見,覺得C語言裡面很多語法彆扭,特別是指標的使用讓很多人吃盡了苦頭,工作十幾年前前後後玩過幾種程式語言,c++,java等比較來看還是C語言簡單些,C語言的難點整體來看也就那幾個
1.指標用法
2.函式
3.遞迴
4.記憶體管理
指標和回撥函式以及記憶體管理都有緊密的關係,所以一旦指標概念突破不了很難全面理解透徹,因為指標靈活方便,但造成了多少不方便之處,有多少人在卡在指標上,記得剛學C語言那陣子,指標概念學的差不多了,覺得自己無往不利了,就開始從圖書館了借了一本linux核心解讀,差不多有1000多頁,心想既然linux核心都是C語言寫的,基礎知識點都掌握的差不多了可以看一些大專案了,由於書開始做了大量的註釋基本的概念還是能看懂,結果看到90多頁就有點頂不住了,堅持了幾天徹底放棄了,才知道這裡面道行很深,不是看懂了概念就能什麼就能搞明白,於是老老實實回來繼續研究基礎了,學習任何一種程式語言都需要有一個循序漸進的過程,遇到困難堅持不下去在心裡永遠覺得很難,後來做了幾個嵌入式專案之後,再去看這本書感覺已經大不一樣了,但還是有看不懂的。
後來接觸C++專案,又會發現C語言的和C++根本沒法比,會覺得C語言簡直簡單太多,詭異離奇、缺陷重重這個詞更加適合放在C++上面,C語言比C++溫柔多了,而且C++語法細節還在不停的更新,給人一種永遠學不完的感覺,很多初學者開始學習發現能編譯過去就是一種幸福了,有多少人卡在泛型程式設計上不能自拔,不太建議剛學程式設計的小夥伴直接直接切入學習C++,容易打擊到學習程式設計的自信心,當然初學循序漸進的學習也是可以的,可以先從面向物件程式語言的基本概念開始,然後慢慢切入到泛型程式設計裡面,C++雖然難卻是很多架構師的最愛,而且做的時間越長感覺越長。
java是一門入門簡單但要成為高手很難的程式語言,可能入門幾個月就能搞定,越做發現裡面的套路越多,高階語言的主要點在框架思想上,因為很多語法細節都集成了工具或者庫裡面,如何把這些工具或者庫整合在一起,然後中間新增功能不影響主體功能,效能還不會下降太多,真是需要一個長期積累的過程。
任何一種語言都有其難理解的地方,想學好程式設計就要懂得克服其中困難,從最基礎的語法開始一點一滴去積累,慢慢從專案中磨礪折騰,時間長了自然就能有了框架思想。