-
1 # 素食的貓
-
2 # __gift
我覺得非常有必要,現代的計算機體系中,所有最根本的東西基本上全是c語言開發的。再者,所有計算機程式設計中都繞不開的東西,記憶體管理,如果只學習java這種語言,沒有可能能深刻理解這方面的知識,這方面不理解以及不能熟練應用,那麼計算機水平就只能停留在初級水平,所以我覺得c需要非常有必要學
-
3 # 飛雪迎春春意濃
謝邀。主要看你未來從事什麼工作?能問這個問題,顯然你不是計算機專業的學生。如果僅僅為了考級,完全沒必要學C語言,因為你未來用上它的可能性不大,反而是office高階應用更實際一些。如果以後有從事計算機、工業自動控制等方面工作的可能,那就必須學。
語言
-
4 # 塵緣似夢
建議初學者學程式設計要先學C語言,再學其他語言。這樣在學其他語言的時候,就會覺得比較容易。而如果先學其他語言,再來學C語言就會覺得很難,甚至根本學不會。這有點像學開車,手動擋踩油門和剎車,同時需要換擋和踩離合器,要手腳協調配合。但自動擋不用,只需要踩油門和剎車,非常傻瓜。如果你先學會開手動擋,那麼遇到自動擋的車,你只需幾分鐘就學會了,而且你會驚奇:怎麼這麼簡單?!但如果你先學會了自動擋,而且習慣了開自動擋,那麼恭喜你,估計你這輩子都很難再學會手動擋了!因為你已經習慣了自動擋的傻瓜式操作,你只會踩油門和踩剎車,你不明白啟動和加速為什麼要換檔,也不習慣在換擋和踩剎車的同時要踩離合,這樣手動擋的車很容易熄火,而你會崩潰。
不同的語言有不同的優勢。C語言的優勢是速度快,效率高,同時,因為C語言和底層關係密切,能夠更深入理解計算機的工作方式,但指標、結構體和共同體,位運算,記憶體分配等概念學習難度也比較大。高階語言如Perl,java/PHP,C#, VB,R, Python等往往和底層脫離,只面向邏輯思維和解決問題。和C語言相比,很多東西(如記憶體分配,陣列、字串變數定義)都是傻瓜式的。
實際工作中,要編寫程式,往往不能只用一種語言,而是根據不同的需求,選擇不同的語言,以便達到事半功倍的效果。比如做個簡單的窗體應用,選擇C#;做演算法和統計分析、作圖,就用matlab/R/Python語言,寫web網路應用,就用SSH/java/PHP,要做office外掛,還得用VB,而不要用c語言,累死你也寫不出來。但如果設計底層的控制,這些高階語言往往不支援,需要用c語言。
-
5 # 使用者8729619767096
我一直都在用C語言,寫程式,剛才還在用C編程式碼,
JAVA,DELPHI,C#都可能淘汰,但C卻能永恆的存在,
-
6 # 武俠鐵粉
C語言現在更多的是用來做嵌入式開發,和硬體掛鉤,純C語言應用的工作崗位不多,建議可以學習諸如JAVA等高階語言。
-
7 # 枝枝葉葉
如果以後做專業軟體開發,有必要學,因為只有理解了c語言 ,才能理解軟體系統的底層原理,作業系統程式,linux kernel,編譯器程式 gcc,等 都是用c語言寫的。如果把程式設計 做為 科學研究 的一種手段,比如 數學家程式設計 研究 數的 素數分解問題,物理學家 程式設計模擬 原子核 中子 質子相互作用,老師用程式統計學生 成績分佈,以及各科相關係數,各題目難度,這樣的程式設計,有python,java 足夠了,學習c 語言,比學習這些語言 耗費更多的時間。 總之c語言,沒有過時,自有它的價值。 具體到每個人 學不學c語言,看具體學程式設計的 目的。看投入的時間 與對實際工作的幫助。c語言的優勢,比如和java 語言比c語言不跨平臺,同一個java 程式,在android 手機上,和windows pc 機上都可以執行,實際上,這兩種環境,cpu 和系統 差別都很大,就是因為c語言 做底層支撐,掩蓋了 他們的差別,java 才能實現跨平臺,不理解c語言,就理解不了底層的原理
-
8 # 大學生程式設計指南
這是這個問題具備很強的兩面性,對於想切入某些領域比如嵌入式開發等這些C語言是必須要學的,不但是C語言要學習,資料結構,c++也要切入進去,所以對於C語言的學習,還是要選擇的方向,有些java的技術大牛本身也不懂c++,但java搞的風生水起。
從系統學習的角度考慮學習C語言還是很有必要,畢竟懂得底層功能的實現,對於系統的瞭解軟體框架還是有幫助。現在很多主流的程式語言的底層大多是基於C語言構建出來的,瞭解底層的實現,對於深刻了解底層程式碼的實現有非常強烈的借鑑意義。
簡單總結下學習C語言的步驟:
1.選擇一本教材然後找到配對的影片
2.制定學習計劃,計劃的推進以書本的大綱為基準
3.在推進計劃的過程中,如果遇到不懂找到 對應的影片學習
4.把指標,陣列,函式,結構體,遞迴,回撥等基礎學好之後
5.嘗試做點C語言的測試小專案,比如貪食蛇,圖書管理系統等等
6.找一些開源的程式碼,透過查詢資料爭取讓自己看明白
7.嘗試修改開原始碼,並且能夠順暢的執行起來。
-
9 # 老馬識途微控制器
我感覺C語言有必要學,但不是必須要學。
我們可能會看到有關這樣的疑問:“老師,為什麼我們的應用程式設計要學C語言而不是別的?C語言不是已經過時了嗎?如果現在要寫一個Windows程式,用VB或Dephi開發多快呀,用C行嗎?退一萬步,為什麼選擇C而不是C++呢?”
一、C語言在程式語言中的地位隨著程式設計技術的發展,程式語言越來越多,多到甚至看花了眼,現在我們經常會看到各種培訓班培訓JAVA,VC,LINUX等等程式語言,卻看不到多少C語言的培訓班。
但是說起C語言,可以說是無人不知,無人不曉(當然,我只是說知道程式設計的人)。C語言誕生至今已經四十多年了,相比於現在火爆的JAVA,PYTHON等程式語言,C語言是不折不扣的老大哥。
我們可以檢視一下歷年來的程式語言排行榜,C語言基本都是前五名。這說明什麼?說明C語言不僅資格老,而且功能強大。
我想今天我們這個問題的目的也正是這樣:C語言很好很強大,但是是否真的有必要學?
二、學習C語言的必要性?C語言是計算機程式設計的基礎,不管你現在是一個高階程式設計師還是一個剛剛起步學習計算機語言的人,建議從C語言開始學習。如果不懂C語言,你想寫底層程式這聽起來十分的可笑,不懂C語言,想寫出優秀高效的程式簡直是天方夜譚。正所謂:學好C語言,走遍天下都不怕。
C語言是實用的程式設計工具,學好C語言對我們今後學習JAVA、C++、VB等可以打下良好的基礎,因為這些語言大部分都是由C語言擴充或衍生而來的。C可以用於開發比較底層的東西,比如驅動、通訊協議之類,在Unix和Linux環境中也是不可或缺的,另外在嵌入式領域也大有作為。
三、C語言的優勢1、學了C語言,也就理解了程式設計的思想,因為想真正學會程式設計就不可能不跟資料結構打交道,而初學者如果直接從VB或Java入手,基本上很難理解如何構造陣列、連結串列、樹、圖等資料結構。也只有真正理解了資料結構,才有機會體驗程式設計的思想和演算法的精髓。
2、C語言語法結構很簡潔精妙,寫出的程式也很高效,很便於描述演算法,而我們常說的,演算法是程式設計的靈魂,只有掌握了設計的靈魂,才能做出更好的設計。
3、C語言能夠讓你深入系統底層,所有的作業系統windows,Unix,Linux,Mac,os/2,都使用C語言來完成的,如果不懂C語言,怎麼可能深入到這些作業系統當中去呢?
4、很多新型的語言都是衍生自C語言,C++,Java,C#...掌握了C語言,可以說你就掌握了很多門語言,經過簡單的學習,你就可以用這些新型的語言去開發了。
-
10 # 程琰657
這要看你從事什麼行業。不同的行業不同的應用環境催生不同的要求。
web伺服器不考慮負載可以Python,有Django。考慮負載Java。底層有c,大型伺服器有c++。ai有Python。glue有perl。
我有一個專案,dns伺服器,電信級的,用perl做glue。一頭開net伺服器接受配置命令,一頭連線MySQL本地存配置,一頭用netlink配置核心模組。
-
11 # 伍先發
想成為程式設計師那就一定要從c開始
C語言相對其他的可以更容易懂
然後C語言也是最基礎的程式設計一樣
可以說一切開發語音基於c
所以c還是很重要的
c語言是一個程式設計師的必經之路
-
12 # 冰封飛飛
如果是計算機專業,以後靠計算機吃飯,那必須學c,c語言是很接近底層的語言,而且和彙編直接的對應很直接,可以讓你對於計算機程式執行的原理的理解有很大幫助。
函式呼叫時,引數在呼叫棧中是怎麼排布的,返回地址藏在了哪裡。棧和堆有啥區別。編譯連結都幹了啥。靜態連結和動態連結有啥區別。elf或者pe結構裡面各個段對應程式碼裡面什麼內容。緩衝區溢位怎麼可以被準確利用。等等一些程式執行的基礎知識,透過c語言都可以非常直接的對應上去。用其他高階語言編譯器幫你做的事情太多了,語法糖也太多了,這些不利於你理解最純粹的程式執行原理。
但是c語言語法表達能力太弱了,適用範圍也是一些比較貼近硬體的場景,或者是資源要求比較嚴格的場景等。國內用c比較多的還是一些傳統IT廠商,裝置廠,數通廠等等。網際網路用的還是少,學c不一定會找c語言的工作,只是幫助你理解計算機。
而且c語言學起來回饋很低,一開始會有一種啥也寫不了的感覺,其實這很正常,這就是語言表達能力弱的一個特點。以後可以根據自己想要從事方向來更換語言,或者繼續深入理解c。(不過c語言的語法就那點東西,很簡單的,難的是大型c語言專案背後的演算法,作業系統,排程,記憶體管理相關的內容)。
如何你是愛好者,而且想做一些比較上層的應用,那沒啥必要學c了。可能挫敗感會讓你放棄計算機,畢竟學c很枯燥,你一開始很難用c寫出來有點意思的程式,只能寫那種連玩具都算不上的東西。可以從比較感興趣的方向來確定需要學什麼語言。
-
13 # C語言答疑課堂
答案是肯定的。 估計題主問這個問題,應該是看到了現在好多的高階語言,像C#、JAVA等,都能做出好多漂亮的介面,而且也能實現好多的功能,而且只要在IDE上用滑鼠拖拉下某個元件就做成了一個UI介面,由此懷疑到還要C語言有何用吧?
可是題主知道嗎,這些高階語言再怎麼牛逼,一些底層的功能還是需要C語言來實現的。你看JAVA裡面有jini機制,用來呼叫native程式碼的,為啥?因為有些功能JAVA做不到,只能依賴C來實現。
你再看Android,它也有個jni機制,也是要呼叫C程式碼來實現某個功能。 比如做Android開發的時候,有個功能是需要對手機裡儲存的影片檔案截圖。單純靠android的框架做不到這一點,只能透過native機制呼叫ffmepg來實現影片的處理,而ffmepg是用什麼語言實現的?就是C語言!
-
14 # 程式設計獅W3Cschool
C生萬物
首先,從程式語言目前的排名來看,C幾乎沒跑出三名開外,九月份排在第二,所以,在短期內它不會沒落,有必要學。
從系統學習的角度來看,學習C語言也很有必要,C語言擅長底層開發,對於系統的瞭解軟體框架有幫助。
學習C語言的正確姿勢應該是,學習計算機體系結構,組成原理以及組合語言的知識。
學習C語言,把計算機的底層知識串聯起來,培養的是一種程式設計思維,其他的益處還包括更好的理解邏輯化程式化的處理問題。
現在很多主流的程式語言或多或少都有參考C語言的設計。
C語言基礎有了,那麼學習C++、Java等都是順其自然,對於PHP和Python的學習也更容易一些,並且可以體會到更多的東西。
C語言的特點1.作為一種面向過程的結構化語言,易於除錯和維護;
2.表現能力和處理能力極強,可以直接訪問記憶體的物理地址;
3.C語言實現了對硬體的程式設計操作,也適合於應用軟體的開發;
4.C語言語法結構很簡潔精妙,效率高,可移植性強等特點;
5.C語言很便於描述演算法,大多數的程式設計師願意使用C語言去描述演算法本身。
畢竟主流作業系統都是C寫的,絕大多數語言的編譯器也是C寫的,大量的底層庫是,驅動也是。
畢竟C可以用來開發系統核心、硬體驅動、微控制器和嵌入式、開發系統元件或服務,編寫PHP擴充套件等等。
“我最後悔的事情就是 C 沒學好,還養了一身 IDE 依賴症,以至於現在根本做不到用 VC6 寫一個簡單的桌面程式,大多數時候只能用批處理、 Electron 甚至是易語言和 autoit 糊弄一下…”
“不會 C ,意味著你無法理解 Python 的引用 /物件堆 /呼叫棧等概念,意味著你看不懂 Python 的原始碼,意味著你無法理解 Linux 的系統呼叫……”
“總的來說吧,C語言健腦,提神,明目。
以後做工程師,搞科研的話,你就乖乖好好學C語言吧,說不定什麼時候就用到了,多學點總是好的。”
這是部分網友對於C語言的感受。
語言的基本邏輯都是一樣的,大部分的差別只是寫法的不同而已。
或許,未來的程式語言市場上C的比重會下降,都是它的重要性是不用懷疑的。
-
15 # 哦奇樹有魚
先給個結論,一定要學,而且要學會,打牢基礎。
為什麼學c語言?c語言幾乎是所有高階語言的基石,可以說,你學會了c語言就相當於掌握了那些高階語言的底層架構入門的橋樑。
市面上幾乎用到的高階程式語言如Java ,php,python等等都是透過才C語言寫的編譯器來編譯成機械碼,這樣才可以被計算機所認識。
學好了c語言,你可以去深入到底層,對日後的技術升級和職業提升大有裨益,市面上很多大公司對演算法和底層都有要求,這些都有c的影子,它是一門面向過程的語言,沒有所謂面嚮物件語言,面向切面那種善於處理業務邏輯語言的花俏,但它值得你深入學習。
如果你想從事計算機演算法程式設計方面的工作,比如現在比較熱門的人工智慧,大資料,區塊鏈,底層開發,如系統方面,基礎軟體等等,學會c讓你如魚得水。
回覆列表
為自己進一步學會C++、C#、JAVASCRIPT等計算機語言打下基礎;
為進一步學習資料結構、編譯原理、作業系統、演算法等課程打下基礎;
絕大多數面試考級等都可以用C語言答題。