當前位置:編程學習大全網 - 編程語言 - C++和C還有很大的效率差異嗎?

C++和C還有很大的效率差異嗎?

1.c是壹種結構化語言,側重於算法和數據結構。C程序設計首先考慮的是如何通過壹個進程來操作輸入(或環境條件)得到輸出(或實現進程(事務)控制)。

2.對於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是C++的基礎,這是壹個很大的誤解。槍和炮可能看起來有點像,甚至有點淵源,但畢竟不是壹回事。

先學C,再學C++有利有弊。應該說還是有爭論的。

我的看法是,如果是編程應用軟件,先不要學C,初學者就少接觸C的老式編程風格。而應該把大部分精力放在C++的標準庫(包括基於STL的編程,這是國內通用教材最缺乏的)和基於對象、面向對象的編程上。這是因為C++的這些應用在編程模式和代碼風格上與C語言有很大的不同。初學者會改掉開發C風格編程的習慣,這種習慣會限制他們對類和泛型編程的理解。

如果以後想接觸相對底層的東西,做軟件庫開發和系統編程,學習C語言是非常有益的,尤其是壹些宏、指針、內存管理等知識(這些東西在前應用中要盡量避免)。但是先學C的好處並不明顯,因為直接學C++也可以學到這些東西,只要稍微改變壹下學習重點。

以上是從應用方向的角度。至於學習難度,直接學C++不難,某些方面更簡單;只是C++的內容比C多而已,C++的創始人Stroustrup極力主張不要學C,並且先列舉了學習C的各種弊端。所以,我的意見是不學C,學C++。

目前國內關於C++的書,壹般都是先講壹段類似C的內容,然後再講C++特有的內容,沒有融合,好像C成了“基礎”。其實這種說話方式主要是因為國內編教材的老師大部分都是C語言(甚至機器碼和匯編)出身,可能很晚才接觸到C++,所以思維定勢。其實國外很多教材壹推出就強調類的概念,STL推出不久就被廣泛使用。過程語法也很直觀(對象的概念其實比函數的概念直觀得多),可以學習。詳情請咨詢元彪老師。

  • 上一篇:java計時器秒表源代碼
  • 下一篇:我想做壹個電子商務網站,用什麽語言開發比較好
  • copyright 2024編程學習大全網