A. c語言和C++本質區別在哪裡為什麼有的人就只用C語言,有點人就只用C++
本質區別就是C++是面向對象的,C是面向過程的。
C適合編一些規模不太大的程序,還有因為接近底層,所以處理小問題比較方便。
C++適合編些規模大的程序。
B. c語言不安全為什麼還很有多人用
因為C語言比其他語言編譯出的軟體運行快啊 所以C語言一般放到嵌入式開發
打個比方
你哪天電視遙控器壞了,你要買個新的
1種遙控器晶元是最新電腦用的晶元,用的遙控器用的軟體用哪個語言開發都會很快 那這個遙控器價格 呵呵..
另1種遙控器價格就十幾塊錢 你想它的晶元運算速度能多快... 那假如裡面是其他語言 估計你按完開機後10秒(極端例子)後才能響應開機,但用C語言 能馬上開機。
安全問題,不就是多個指針跑飛和內存泄漏么,這個真沒法避免
但使用指針和內存分配的確能使C語言運行靈活
再說了 其他語言該出Bug也不照樣出Bug么
C. java語言、C語言、C++語言各有什麼區別,每種語言有什麼優越性
Java:Sun公司開發的面相對象的語言。跨平台、開源、免費、有豐富的類庫和第3方插件、自動釋放內存、不斷的版本升級、效率的提升。Java為程序員降低復雜度,同等功能開發效率是C++的兩倍,適合於企業級開發(穩定、高效)。是目前用的最多的企業級開發語言。Java具有安全性、健壯性、跨平台、豐富的第三方插件和對特定問題的開源解決方案等等優劣(大項目一般是跨平台的)。但Java也有不足的地方,就是前台的表現,界面不夠豐富,動態效果不是很理想。所以我們經常使用Java(後台)+Ajax+Flex/Flash的架構來解決工程方案,從而彌補Java的不足。
C語言:比較早的面向過程的開發語言,從設計模式及流程上已經過時(面向過程的設計模式,注重於程序執行的順序,第一步,第二步…這樣的走下去,如果其中一個環節出錯將導致整個系統崩潰,而且在查找bug時也比較困難,因為這種設計思想中,總是存在很多隱含的參數依賴),但其以靈活快速操作計算機底層(硬體)的特性,深受底層開發人員的青睞。(操作系統,驅動程序,對速度要求比較高的實時系統:鐵路售票等),現在主要與其他語言共用做一些後台快速操作。
C++語言:C語言的升級,兼容C,執行效率高。人們在用c開發時就發現c語言已無法滿足計算機硬體高速發展所帶來的程序的復雜性,用以往C的設計思想已經很難開發和維護現在龐大復雜的軟體系統(因為C是面向過程的),現在的內存已不是原來的幾K,幾十K,而是幾百M,幾個G,。所以我們已經不能像以前那樣簡單地操作內存,我們需要更為合理地管理內存,更為簡單地解決復雜問題,更為方便地更改bug,要將錯誤影響的范圍縮到最小。經過分析現實世界的復雜關系發現現實世界中是以對象(人、小狗、樹木)為單位,將復雜的關系簡化為對象與對象之間的關系,我們不必去想對象內部細節是如何實現的。比如人們呼吸時不用考慮呼吸的過程細節,和對方握手時不用去思考該給哪塊肌肉發指令。所以我們就從更高的層次上看待問題,我們只是想是否要和對方握手,不考慮肌肉的運動。這樣就減少了復雜性,從而使我們更簡單的工作和生活。這就是C++誕生時的想法,它是面向對象的語言,把各個對象獨立封裝,對象的方法(行為)和屬性都在自己內部實現,從而減少了程序的耦合度。更重要的是有了「繼承」的機制,使得我們可以最大程度上重用代碼。比如:我們人從出生下來就有兩個腿,而螃蟹生下來就有8隻腿,我們就直著走,而螃蟹橫著走。我們只需要確定對象的類別,我們就知道他固有的特點(方法和屬性)。這就是編程中所講的對象和類的概念。但是C++也有自己的缺點,比如內存的手動釋放,聽起來是個小問題,但在企業級開發中是不可容忍的,經常造成嚴重的內存溢出,而且極難發現問題的所在。 我們學校網站的相關解釋!望採納幫助到你!
D. 熱愛C語言的我該何去何從
熱愛C語言,有一份熱愛在就非常好了,熱愛它,就學好它,不要有莫名其妙的優越感,不屑於去學習一些新的東西,接下來,我將把我走過的坑告訴題主,希望對你有所幫助。
假如能再回到學校,我想我會拋開語言之爭,認認真真地從小項目做起,多寫代碼少逛社區。而不是糾結於哪個語言好,用什麼軟體更geek。每個語言都有實際的應用場景和配套的框架加速開發速度。實際工作中需要掌握的知識很多,學校裡面積累的僅僅只是基礎,類似操作系統原理 TCP/IP協議這些基本的理論知識如果扎實,在工作中遇到bug或者困難的時候排錯效率會高很多,但這些都只是基本要求,實際工作其實還有很多坑要跳:容災高可用、高並發、數據一致性,每一個坑如果都是靠自己寫的代碼來跳過去,不太現實,這個時候就要接入其它框架和應用來輔助,而不同的框架和應用,開發語言、思想都有所差異,只抱著一門語言去解決所有問題,肯定可以,但是會很累,掌握多門語言和基礎的理論知識能夠有效地減少重復性的工作,絕對不是浪費時間。
E. C語言為什麼會被人說的那麼強大,C語言到底能做啥
一、c語言是一種計算機編程語言
具有程序設計語言的特性,又具有匯編語言的特性。c語言可當做工作中控制系統設計語種,撰寫系手機應用程序,還可以當做運用編程語言,撰寫不依靠計算機硬體的手機應用程序。
二、運用條件廣泛應用
具有較強的數據預處理能力,不但是在開發軟體上,並且各種科學研究都必須用到c語言,適合撰寫軟體系統,三維立體,二維動畫幾何體和3d動畫。具體化運用例如單片機設計及其嵌入式系統開發設計。
三、c語言是面向對象編程語種
c語言運用windows服務平台下編譯的,是一直執行在windows服務平台下的,而Java自始至終是執行在他的虛擬機以上的;因此理論上c語言能做某些相對性於較為下層的工作中,像Java就不可以撰寫Windows木馬病毒。
四、Windows系統優化
假如要運用編程來做某些windows系統優化工作中的情況下,最好還是運用c語言。c語言是現階段世界上最火、用到最廣泛應用的高級編程語言。
F. 世界上存在幾天就精通c語言的人嘛就算有基礎有天賦也沒這么誇張吧
不要說幾天精通c語言,就是現在也幾乎沒有人敢說精通,講道理,除了開發出c語言的人,其他人都不能叫精通。什麼叫精通,不僅僅是會熟練的使用這門語言,更是對於語言的各種機制有非常深入的了解。否則,其它的情況最多算作掌握或者熟悉罷了!
G. 學習c語言對學習java有用么
那必須有用啊,不懂C得java程序員不是真正的程序員,C是java的底層實現,學了C能更好地理解java。java的函數都是用C語言寫好封裝的,如果你只是想當一個java代碼程序員(就光敲代碼的那種),那你可以不用學了,但是如果想再java方面不斷的深入,不斷的提升,C語言是比必學的,不然,你根本就不知道java實現的機制和java函數的實現。
H. c++跟c比較優越性體現在哪裡
C與C++的區別 [轉載--網路]
C是一個結構化語言,如譚老爺子所說:它的重點在於演算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制),而對於C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制。
所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」,而就語言本身而言,在C中更多的是演算法的概念。那麼是不是C就不重要了,錯!演算法是程序設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,「C加上好的設計」也能寫出非常好的東西。
對語言本身而言,C是C++的子集,那麼是什麼樣的一個子集?從上文可以看出, C實現了C++中過程化控制及其它相關功能,而在C++中的C(我稱它為「C+」),相對於原來的C還有所加強,引入了重載、內聯函數、異常處理等等玩藝兒,C++更是拓展了面向對象設計的內容,如類、繼承、虛函數、模板和包容器類等等。
再提高一點,在C++中,數據封裝、類型這些東東已不是什麼新鮮事了,需要考慮的是諸如:對象粒度的選擇、對象介面的設計和繼承、組合與繼承的使用等等問題。
所以相對於C,C++包含了更豐富的「設計」的概念,但C是C++的一個自洽子集,也具有強大的功能,同樣值得學習。
幾點學習建議:
1.基本概念很重要。無論學C,還是學C++,基本概念都是第一位的,也是比較困難的,但只有把握了基本概念才能把握整體脈絡,才能居高臨下。
2.C是C++的子集,它的基本概念和設計方法相對比較容易理解,初學者可從它入手。
3.如果要學好C++,建議初學者最好別在如VC,BCB平台下寫程序,那種自動化的代碼生成,花花綠綠的界面,會讓你手足無措。最好先找一片空地(unix,dos),從頭做起,寫幾個大點的程序,數個回合,再到VC,BCB下看看,你會輕松得很。在我看來,學好C/C++是成為VC,BCB高手的必由之路。
4.不要妄想速成,必須得一個byte,一個bit的去摳,盡量搞清楚每一個問題。
5.幾本好書:
機械工業出版社的那套「計算機科學叢書」從C到C++,到面向對象設計,一應俱全,都TMD是經典中的經典,而且價格公道,童叟無欺。
國內也有幾本好書,譚老爺子的書好倒是好,就是程序錯誤太多。強烈推薦清華周之英的《現代軟體工程》(上、中、下),它是我所見到的國內少有的一本好書,精華的精華,要點的要點,細細品來,至少也屬降龍十八掌等級的東東。
如果還是有人想學習C/C++的話, 有一些小問題我還是樂意解答的. 但是我認為學習C/C++是不重要的, 重要的是如何鍛煉你的思路. 不要找一些連自己都搞不清的問題去做.
我認為雖然 "潭浩強" 同志有騙錢的嫌疑( 我手頭就有一本幾乎一模一樣的英文書 ), 但是, 是他把這本入門手冊引入中國, 使無數程序員了解了C語言, 我想他的功勞也是不可磨滅的. 在< C語言程序設計 >這本書中所有的例子都可以用做鍛煉思路的基石, 他對大家的編程是很有幫助的. 我認為是值得一買的. 去思考課後的例子對你的編程很有幫助. 不要小看一個一個簡單的例子, 他們是你通往成功的道路.
當你基本能夠掌握了上一本書中例子後, 你就要自己找一些例子程序去看. 開始可能是看不懂, 但是只要努力就沒有什麼問題. 當你看過幾個較大的例子之後, 你會茅塞頓開, ( 大量閱讀例子程序是學習C/C++的捷徑 ). 你會發現, 你的水平有了顯著的提高. 你看的例子越多, 你對 Windows/DOS 了解的越多. 最好能夠再看一些關於系統知識的書籍. 他會對你的編程很有幫助的.
這是我學習C/C++的一點心得, 希望對沒有被我嚇到而要繼續學習C/C++的朋友們有一些幫助. 免得有些同志說我破壞中國軟體人才的發展.
在最後我祝願所有堅持學習C/C++的朋友們成功! 同時感謝閱讀過我文章的同志們.
想學好C++,非學C不可!!!
今天我這么肯定的在這里講這番話,是不想初學者陷入到語言越新越好的誤區,本來這個題目就不是很嚴謹,但是我有幾句話必須講講,為C平反!!
C++與C有什麼不同呢?我們現在一步步地來分析一下
一、類,類我並不說它有什麼不好,但是對於初學者,它是一個累贅。類的封裝使得初學者對程序產生厭倦,感到不適和麻煩。
二、引用,引用是C++中最臭屁的東西了,最好盡量不要用它,我就是從來不用引用,除非萬不得已。引用對於初學者就更容易產生混淆,不知道哪個是引用,哪個是變數。
三、函數的重載,初學者學函數的重載好像沒什麼壞處,但是,這會使初學者潛意識里對C語言的變數類型的重要性產生淡化,要記住C語言是對變數類型最敏感了的,變數的類型在C語言里的重要性是不言而喻的。
四、流操作符,和上面同樣的道理,使得對變數類型的重要性產生淡化,況且,cin這個東東有點兒不怎麼方便,有時會產生使初學者莫名其妙的結果。
五、操作符重載,典型的高級應用,初學者可能根本用不著,這個東東會讓他們覺得C++很難,門檻高,看不懂…………。
六、繼承,以及虛函數,典型的模仿四不象,這種狗屁東西除了看起來深奧,實用價值很低………………。我怎麼可能把某個類的類型的指針去指向另一個不同類型但是是繼承關系的類,來實現什麼動態聯編,暈…………
………………還有些東東我就不發表評論了,如:new,delete操作符等…………
七、誤區:以問答形式:
問:C++是面向對象化的而C是面向過程化的?
答:第二對,第一問錯,C++並非完全面向對象化,真正的面向對象化的語言恐怕只有Java才算得上。
問:C++能實現C所不能的功能嗎?
答:至少我還沒有發現……
問:學了C再學C++有障礙嗎?比如程序設計思想……
答:至少我還沒有看見誰有此症狀。
問:學了C再學C++又要重頭開始嗎?
答:不,C++下可以實現C語言的一切功能。
問:我學完了C一定還要學C++才能編程嗎?
答:完全沒必要。
問:C++比C好在哪裡?
答:更加符合軟體工程學
問:學完了C再學C++是不是很容易?
答:那要看你是不是真正的學完了C語言,我從C到C++就一個星期的睡覺前的時間看兩眼書,然後就大徹大悟。再跑到這里r />最近在網上看到了很多人的學習方法,本人非常不贊同。很多人都想一口吃個胖子,要學就想學最新的,好象沒有人願意再去學那些老的,舊的編程語言了。但你們能學的懂嗎?不學TC2。0等那些較早的優秀編程語言,你們能理解的了VC6。0?如果你真的能,我寧願做你的徒弟!真是奇怪,那些最基本的語言都不懂的人,怎麼可能去理解那些最新的編程語言?我學編程有三年了吧。成績也不算多,只有一個計算機四級證和一個高程證,但我覺得我在學VC的時候還有很多的不明白的地方。沒有人來教我,只能靠我自己,包括所有的成績在內,我都是靠自己,我從不報班。學VC的半年多來,我想我已經基本入門,但依然有很多的困惑。剛開始學VC,就面臨一個項目,我真的猶如笨蛋一般,四處嚇摸,毫無頭緒,最後勉勉強強才算做個差不多。學好VC再去學其他的高級WINDOWS編程,我想那真是輕而易舉,畢竟WINDOWS的內部的很多東西都能直接被VC調用,你首先就可以對WINDOWS有個全新的認識,再去學其他的語言豈能不簡單?
我的感覺是,面向過程和面向對象,其實都很重要的,在VC里也依然需要面向過程,很多東西都是一環扣一環,沒有面向過程的思想,怎麼可能去編程呢?建議多去看看有關WINDOWS編程的書,但多數都是比較老的書呦!我依然記得當年整天進行TC編程的辛苦,但我依然很懷念當年的勞動付出,畢竟我獲得了我想獲得的一切——編程思想。我覺得一個好的編程思想,絕對比你去學一門計算機語言好重要的多。要形成自己的編程風格。一個好的編程思想在你的頭腦中一旦形成,學習什麼語言都會很輕而易舉,因為此時的你不在是簡簡單單的學習,而是來驗證!
I. C語言優勢何在
早期的C 語言主要是用於UNIX系統。由於C語言的強大功能和各方面的優點逐漸為人們認識,到了八十年代,C開始進入其它操作系統,並很快在各類大、中、小和微型計算機上得到了廣泛的使用,成為當代最優秀的程序設計語言之一。
在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向對象的程序設計語言。C++目前流行的最新版本是Borland C++, Symantec C++和Microsoft VisualC++。
C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。
但是,C是C++的基礎,C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向對象的語言,從而達到事半功倍的目的。