1樓:你猜我猜哇擦猜
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,過程式的語法與這些一塊講,同樣也很直觀(物件的概念實際上比函式的概念直觀得多),可以學得通。
2樓:接穎然燕弼
區別在這,
inta=2;
if(a=1)
printf("hello
world1111\n");
if(a
==1)
printf("hello
world2222\n");
第一個if裡邊的賦值只要右邊的不為0則條件判斷為真,a的值就是1,所以會輸出hello
world1111;
第二個if裡邊的比較只有a的值為1的時候才會輸出helloworld
2222,因為a的值為2,所以條件判斷為假,不會輸出。
3樓:匿名使用者
沒有什麼區別,這部分是完全一致的,除非在c++的類中重新定義,公共部分一樣。
c語言和c++的區別
4樓:給i畫餅充飢
c與c++的最大區別:在於它們的用於解決問題的思想方法不一樣。之所以說c++比c更先進,是因為「 設計這個概念已經被融入到c++之中 」,而就語言本身而言,在c中更多的是演算法的概念。
那麼是不是c就不重要了,錯!演算法是程式設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,「c加上好的設計」也能寫出非常好的東西。
1,全新的程式程式思維,c語言是程序導向的,而c++是物件導向的。
2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中;而c++對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c++中的api是對window系統的大多數api有機的組合,是一個集體。但你也可能單獨呼叫api。
3,特別是c++中的圖形處理,它和語言的圖形有很大的區別。c語言中的圖形處理函式基本上是不能用在中c++中的。c語言標準中不包括圖形處理。
4,c和c++中都有結構的概念,但是在c語言中結構只有成員變數,而沒成員方法,而在c++中結構中,它可以有自己的成員變數和成員函式。但是在c語言中結構的成員是公共的,什麼想訪問它的都可以訪問;而在vc++中它沒有加限定符的為私有的。
5,c語言可以寫很多方面的程式,但是c++可以寫得更多更好,c++可以寫基於dosr程式,寫dll,寫控制元件,寫系統。
5樓:匿名使用者
c語言是c++語言的一個子集。
c++語言包含了c語言的全部詞法和語法的內容,同時它增加了物件導向程式設計語言所必備的內容。
c為程序導向的語言,c++為物件導向的語言。
c++語言源程式中比c語言多一種資料型別-----類,也就是多一種變數-----物件。
6樓:匿名使用者
1、「::」類作用域操作符。「::」指明瞭成員函式所屬的類。如:m::f(s)就表示f(s)是類m的成員函式。
2、->和 .實現的功能是一樣的,都是訪問類的成員變數或成員函式,. 用於普通變數操作,->只能用於指標變數操作。
如:若a為一指向物件的指標,a->f(s)就表示呼叫a所指的物件中的成員函式f(s)。
7樓:匿名使用者
區別很多,暫列10點。
1,程式思維。c語言
是程序導向的,而c++是物件導向的。
2,函式。c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中;而c++對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c++中的api是對window系統的大多數api有機的組合,是一個集體。但你也可能單獨呼叫api。
3,圖形處理。c++中的圖形處理,和c語言的圖形有很大的區別。c語言中的圖形處理函式基本上是不能用在中c++中的。c語言標準中不包括圖形處理。
4,結構。c語言和c++中都有結構的概念,但是在c語言中結構只有成員變數,而沒成員方法,而在c++中結構中,它可以有自己的成員變數和成員函式。但是在c語言中結構的成員是公共的,什麼想訪問它的都可以訪問;而在vc++中它沒有加限定符的為私有的。
5,寫程式的應用範圍。c語言可以寫很多方面的程式,但是c++可以寫得更多更好,c++可以寫基於dosr程式,寫dll,寫控制元件,寫系統。
6,檔案的組織。c語言對程式的檔案的組織是鬆散的,幾乎是全要程式處理;而c++對檔案的組織是以工程,各檔案分類明確。
7,智慧化。c++中的ide很智慧,和vb一樣,有的功能可能比vb還強;c語言在這方面不能看。
8,自動生成。c語言沒有「推測」功能,不自動生成程式;c++可以「推測」然後自動生成「你想要」的程式結構,大大節省程式設計時間。有很多可用的工具如加入mfc中的類的時候,加入變數的時候等等。
9,附加工具。c語言沒什麼附加工具;c++中的附加工具也有很多,可以進行系統的分析,可以檢視api、可以檢視控制元件。
10,c++除錯功能強大,並且方法多樣。
綜上,c++是c語言的升級,比c語言功能更多、使用更方便。
8樓:水瓶蕭兮
這兩個符號是關係運算子,兩個符號的代表的含義不同。
==的名稱是等於,例如a==b,當a等於b時返回真,否者返回假。
!=的名稱是不等於,例如a!=b,當a不等於b時返回真,否者返回假。
關係運算子的值只能是0或1。關係運算子的值為真時,結果值都為1。關係運算子的值為假時,結果值都為0。
擴充套件資料
其他的關係運算子
"<"小於,例如a"<=" 小於等於,例如a<=b,功能是a小於等於b時返回真;否則返回假。
」>「的名稱大於,例如a>b,功能是a大於b時返回真;否則返回假。
」>=「的名稱大於等於,例如a>=b,能是a大於等於b時返回真;否則返回假。
上面4中關係運算子的先級別相同,==和!=運算子的級別相同,前四種級別高於後兩種級別。關係運算子的優先順序低於算術運算子。關係運算子的優先順序高於賦值運算子。
9樓:金魚
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,過程式的語法與這些一塊講,同樣也很直觀(物件的概念實際上比函式的概念直觀得多),可以學得通。
C語言問題請教一下,一個C語言問題請教一下
le變數沒有定義.編譯器會有提示的 汐日南莘 程式好像沒錯啊 你輸入資料的時候有沒輸入逗號 如1,2,5 include include int main else return 0 看了好久才發現 你把 數字1寫成字元l了 應該沒問題了 白字魚 include include int main e...
c語言問題?詳細解答一下,謝謝,C語言問題,詳細解答一下,謝謝
密碼忘記了 遞迴呼叫,結果是輸出陣列中所有數的和,對這個例子結果是6.if n 這句話表示如果n 1,就以該陣列第二個數為輸出作為一個新陣列,n 1為新的n,遞迴呼叫該函式,將返回值和當前輸入陣列的第一個元素加起來的和作為返回值。else return a 0 表示n為1時,直接返回陣列第一個元素。...
C語言程式設計的取餘,C語言程式設計中運算子 (求餘運算子)怎樣使用?
c語言的取餘運算是指兩個整數相除時,運算結果只取商的整數部分,並且沒有四捨五入。那個函式輸出結果是 30 7is2 c語言中要輸出百分號,在printf函式裡必須用兩個百分號做格式控制,因為百分號本身被用作格式控制前導符使用了,屬於編譯系統的保留字元,它已經不能代表它自己了,為了能輸出它,就做了這個...