1. 如果現在學一門編程語言,是學java還是c/c++。c語言現在真的不行了嗎
對於計算機相關專業的同學來說,建議從C語言開始學起,原因有三點,其一是C語言簡單易學,實驗場景也比較好搭建,其二是C語言對於學習後續的專業課有較大的幫助,比如操作系統、編譯原理、數據結構等,其三是C語言依然有大量的應用場景,而且一部分學校在考研時也會考察C語言。
對於計算機相關專業的同學來說,學習一門編程語言是遠遠不夠的,在大一期間還應該再學習一門全場景編程語言,比如Java語言就應該重點學習一下,目前Java語言在大數據開發領域也有廣泛的應用。
對於非計算機相關專業的同學來說,可以從Python語言開始學起,原因同樣有三點,其一是Python語言是最容易入門的編程語言之一,語法簡潔明了,很容易在學習初期就建立起學習成就感,其二是Python語言在數據分析領域有大量的應用,未來更多的專業都需要進行數據分析操作,其三是Python語言的行業覆蓋面更廣,不像Java語言主要應用在IT互聯網行業。
學習編程語言一定要重視三件事,其一是重視實驗,編程語言說到底僅僅是一種工具,只有多使用才能逐漸熟悉,其二是重視規劃,學習編程語言要有一個合理的學習路線,這對於能否持續深入學習有非常大的影響,其三是重視交流和總結,這對於形成自己的編程思想有重要的影響。
2. 學不好c語言對身心健康有什麼影響
這個對身心健康沒什麼大的影響,C語言是一項知識,並不是人生中必需的東西,學不好是很正常的。
人總有自己學不會的東西,這個不要過分在意,你的一生還有更重要的事情。
身心健康不是一項C語言就可以影響到的,唯一的影響可能只是在你學不好時給你帶來困擾。但是它對身心健康的影響微乎其微,人的身心健康是受到他的成長經歷和環境的影響的。
3. 學c語言有前途嗎
沒有。
首先要看你的需求,學C語言的,基本有這么幾類吧。
大學基礎課有C語言這門課的,基本就是電子類專業,電氣類專業,IT類專業。這幾類的又有所不同了,電子類的基本上就只用和大量使用C語言的,這部分人基本上是玩單片機的,目的是用來代替匯編語言的,寫些跑不了操作系統的一類的控製程序,電氣基本上也和電子類是一樣的,基本用來玩單片機的,IT類是因為基礎課里有,也是幾乎最早的高級語言,但是他們基本不用C語言來寫程序,這部分人基本上是要寫在操作系統上跑的軟體,C語言的功能根本不夠他們用的,有部分可能會用C語言,可能是因為介面一類的問題,才會使用。
綜上所述,學C語言,沒有前途,如果你的目的是轉IT類的,直接從C++的書學起,C++里很多基礎的知識是和C語言高度重合的,但是C++還有一部分C語言不具備的功能,完全不用先從C開始學,至於說學了C之後,學C++更容易的這種觀點,我是不認同的,網上很多認為C++ Primer是本入門C++的神書,我也讀過,不過我認為這本書是爛書,尤其是第一張,就算學過C語言的,看第一章,都是痛苦的,而且整本書,我認為編排都不好,所以別以為學了C語言,再去看C++ Primer的所謂入門C++神書,會對你有很大幫助,所以你的目標是寫軟體,直接學C++就好了,會不會C,對學C++沒有太大幫助,反而在浪費時間,因為C++里很多基礎的,C語言都有一樣的,你等於看了兩遍,沒有必要,而C++里獨有的,你第一次看,一定是發蒙的,很正常,再看一遍不懂的,多學著寫點代碼,馬上就懂了。如果你是學單片機這種的,C語言可以學,因為C語言作為高級語言,編程效率是很高的(前提是要有編譯器,否則只能用匯編),但是我個人還是覺得,學之前,先學匯編,有的人匯編一點不懂,用C語言寫單片機,其實也就是照著書本的寫,很多都不明白為什麼,尤其是單片機里的中斷概念,即便有些書上有寫,但是卻寫明白,中斷里CPU是怎麼運行的,這種原理,在匯編語言里,一定是有的,看完匯編,會對C語言里,很難懂的中斷和中斷處理程序的理解,非常深,有助於你的學習,匯編學一本,就夠了,基本都是從51開始學的,所以買本51匯編語言的,就夠了,其他高級單片機的中斷和51基本上是一回事,但是從目前看,國內的單片機,嵌入式,沒什麼太大的希望,尤其是『錢途』方面的,跟國外不是一個檔次,普通學校出來的,都是炮灰。
最後總結一下,學C語言,對IT編程的來說,沒有必要,對搞嵌入式的來說,只是一個很重要的工具,往嵌入式方向的小白,建議還是先從匯編開始,深入了解單片機的原理,再用強大的工具來寫,C語言是嵌入式的剛需,但是想嵌入式,賺大錢的話,國內的嵌入式,沒什麼前途,所以C語言沒前途········
4. 學c語言有前途嗎
C語言是基礎,作用不太大。不過學會了C語言,學C++不會那麼困難,C語言主要是面向底層的語言,C++才是面向對象的語言,C++用於編寫計算機程序很比較容易和方便的,C語言很 麻煩,你幾乎找不到用C語言編寫的應用程序,C語言對於寫驅動和嵌入式相當好,比匯編語言好記。看你是要學來干什麼了。而且現在幾乎工科的學生都會學習C語言,所以會C語言並不會有什麼優勢,像電氣的學生基本都會學,計算機的學生C語言更是基礎課,專科更是了,專科里,電氣方向也是學的,電子方向的也要學,計算機也要學,很普遍的課程。對C語言有要求的公司,基本都是嵌入式的公司,即做手機啊,無人機啊,或者工控硬體的,需要寫驅動都需要掌握C語言,另外普遍也要會匯編語言,VB,C++等,C++主要是有些玩具,或者工控設備需要電腦界面控制的,編寫這類軟體需要會C++,大一點的公司會把硬體驅動和軟體分開,小的公司就需要你都會,這樣就能節約成本。計算機程序員的話,C語言是基礎,但是基本不以C語言會不會,好不好作為評判標准,基本都是以C++,JAVA等能直接快速編寫應用程序的語言為主,如果很6的話,工資當然就高啦。
5. C語言編程技術的優勢和劣勢
隨著互聯網編程技術的不斷發展,現在大多數的軟體開發都是通過編程語言來實現的,今天我們就一起來了解一下C語言編程開發技術都有哪些優勢和劣勢。
C語言的一些好的體驗
一次通過閱讀POV-Ray源代碼學會如何在C語言中實現面向對象編程。
通過閱讀GTK+源代碼了解C語言代碼的清晰、干凈和可維護性。
通過閱讀SIOD和Guile的源代碼,知道如何使用C語言實現Scheme解析器。
使用C語言寫出GNOMEEye的初始版本,並對MicroTile渲染進行調優。
C語言的一些不好的體驗
在Evolution團隊時,很多東西老是崩潰。那個時候還沒有Valgrind,為了得到Purify這個軟體,需要購買一台Solaris機器。
調試gnome-vfs線程死鎖問題。
調試Mesa,卻無果。
接手Nautilus-share的初始版本,卻發現代碼裡面居然沒有使用free()。
想要重構代碼,卻不知道該如何管理好內存。
想要打包代碼,卻發現到處是全局變數,而且沒有靜態函數。
但不管怎樣,還是來說說那些Rust里有但C語言里沒有的東西吧。
自動資源管理
Rust從C++那裡借鑒了一些想法,如RAII(,資源獲取即初始化)和智能指針,並加入了值的單一所有權原則,還提供了自動化的決策性資源管理機制。
自動化:不需要手動調用free()。內存使用完後會自動釋放,文件使用完後會自動關閉,互斥鎖在作用域之外會自動釋放。如果要封裝外部資源,基本上只要實現Drop這個trait就可以了。封裝過的資源就像是編程語言的一部分,因為你不需要去管理它的生命周期。
決策性:資源被創建(內存分配、初始化、打開文件等),然後在作用域之外被銷毀。根本不存在垃圾收集這回事:代碼執行完就都結束了。程序數據的生命周期看起來就像是函數調用樹。
如果在寫代碼時老是忘記調用這些方法(free/close/destroy),或者發現以前寫的代碼已經忘記調用,甚至錯誤地調用,那麼以後我再也不想使用這些方法了。
泛型
Vec真的就是元素T的vector,而不只是對象指針的數組。在經過編譯之後,它只能用來存放類型T的對象。
在C語言里需要些很多代碼才能實現類似的功能,所以我不想再這么幹了。
trait不只是interface
Rust並不是一門類似那樣的面向對象編程語言,它有trait,看起來就像是里的interface——可以用來實現動態綁定。如果一個對象實現了Drawable,那麼就可以肯定該對象帶有draw()方法。
不過不管怎樣,trait的威力可不止這些。
依賴管理
以前實現依賴管理需要:
手動調用或通過自動化工具宏來調用g-config。
指定頭文件和庫文件路徑。
基本上需要人為確保安裝了正確版本的庫文件。
而在Rust里,只需要編寫一個Cargo.toml文件,然後在文件里指明依賴庫的版本。這些依賴庫會被自動下載下來,或者從某個指定的地方獲取。
測試
C語言的單元測試非常困難,原因如下:
內部函數通常都是靜態的。也就是說,它們無法被外部文件調用。測試程序需要使用#include指令把源文件包含進來,或者使用#ifdefs在測試過程中移除這些靜態函數。
需要編寫Makefile文件將測試程序鏈接到其中的部分依賴庫或部分代碼。
需要使用測試框架,並把測試用例注冊到框架上,還要學會如何使用這些框架。
衛生宏(HygienicMacro)
Rust的衛生宏避免了C語言宏可能存在的問題,比如宏中的一些東西會掩蓋掉代碼里的標識符。Rust並不要求宏中所有的符號都必須使用括弧,比如max(5+3,4)。
沒有自動轉型
在C語言里,昆明北大青鳥http://www.kmbdqn.cn/發現很多bug都是因為在無意中將int轉成short或char而導致,而在Rust里就不會出現這種情況,因為它要求顯示轉型。
不會出現整型溢出
這個就不用再多作解釋了。
6. 到底學C語言好不好
好,c語言是編程語言的基礎,它裡面的知識點是其他語言的基礎,學完c再學其他的,是很有幫助的,而且c也很靈活,學吧,很有用的,你不會後悔
7. 有人說:C語言不行啊!太差了啦。
c語言只能作為基礎課了,不是說它不好而是說現在能完全掌握的人少,建議樓主學習c#或者vb.net
前途很好,而且上手快
8. C語言有什麼優點什麼缺點有什麼特別之處
c語言的優點就是它的性能極佳,其它編程語言幾乎沒有它的性能,因此它被用為linux操作系統設計語言。
c語言的缺點是太靈活,沒有垃圾回收,代碼不好編寫。
c語言特別之處就是它的指針和結構體,這兩個東西的存在讓c語言變得異常強大,很多復雜的業務設計,都可以通過它們兩個來實現,也可以說,只有掌握了指針和結構體,你才算入門c語言。
9. c語言為什麼這么難學,我為什麼老是學不會
對初學者來說,C語言確實有一定的難點,但是C語言是基礎的語言,並不是最難的所以學不好的主要還是自身的問題。依據本人這么多年的經驗,這嘗試分析下為何這么多人學不好C語言?
C語言本身存在一定難度
C語言主要應用於操作系統、嵌入式底層開發等,在這些領域C語言一直都咱局主導位置,但是在入門上現在比較熱門的php、python、java等語言比C語言稍微容易一些。所以很多人學習到C語言的時候,理解起來很抽象,使用時變化莫測,覺得很難,自己就失去了興趣,慢慢地放棄了。特別是在指針的學習上,是一個檻,很多人就是倒在指針上的。
當然除了指針,C語言裡面還有一些回調、遞歸、函數指針、指針函數也有一定的難點,所以總的來講C語言還是有一定的難度 的,學習C語言一定要多練,不能光看書,多做一些項目慢慢地就好了。
意志力不夠沒有耐心,倒在黎明前夕
學習編程主要挺過去前兩年的積累經驗階段,後面就好多了,有些人就是迷迷糊糊的進入技術崗位了不知道到底做的是什麼,會有一天發現自己突然明白過來很多的事情,以前有些不明白的事情,突然覺得啥都明白了,看似是一件很神奇的事情,本質上來講都是日積月累構造成的。
很多人覺得自己學了這么長時間還是很多不明白,就會產生厭倦心裡,自己都想要放棄,沒有了激情,慢慢地自己就放棄了,其實有時候默默地再堅持一會自己就會慢慢地掌握C語言的精髓,對C語言產生興趣。
C語言沒有別的語言好就業
這涉及一個很現實的問題,學習了編程語言就得找工作,如果學了不好找工作,肯定學習起來的動力就不足,畢竟C語言的工作崗位絕對數量並不少,但是相比java,php,python等語言還是沒法比,而且對入門者的要求相對更高點,薪資上也不一定有多大的優勢,所以對於初學者沒有多大的吸引力。目前這也是當前的市場實際情況。
C語言是不是就不值得學習了?其實這種說法是不對的,其實php,python等底層語言還不是一樣用C語言來實現,所以C語言的重要性不言而喻。不要聽信C語言已經過時之類的謠言,C語言一直都在默默無聞、踏踏實實地做著底層很重要的事情,經久不衰。想要在軟體行業立足發展,C語言還是很值得學習的。
10. c語言好用嗎
c語言是很熱門的學科,很多大型程序都是c語言編寫的!當然,其實也不能說是c語言,應該叫做c++,就是比c語言多了一些東西,更適合用於編寫大型程序。c語言確切的說是一種基礎,對於初學者來說,c最大的作用就是能為你建立一個初步的編程思想,並不是好不好用的問題。是一個入門,一個基礎。只要把它學了,會對以後的進一步學習提供很多方便!