C 與C的聯絡與區別

2022-07-25 01:24:21 字數 1992 閱讀 7213

c++與c的聯絡:

c++是在c

語言的基礎上開發的一種物件導向程式設計語言,應用廣泛。

c++支援多種程式設計正規化 --物件導向程式設計、泛型程式設計和過程化程式設計。 其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是最受廣大程式設計師受用的最強大程式語言之一

,支援類:類、封裝、過載等特性

!c++

在c的基礎上增添類,c是乙個結構化語言,它的重點在於演算法和資料結構。c程式的設計首要考慮的是如何通過乙個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制),而對於c++,首要考慮的是如何構造乙個物件模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取物件的狀態資訊得到輸出或實現過程(事務)控制。

c++與c的區別:

1、c是面向過程的語言,而c++是物件導向的語言,那麼什麼是物件導向?

物件導向:物件導向是一種對現實世界的理解和抽象的方法、思想,通過將需求要素轉化為物件進行問題處理的一種思想。

2、c和c++動態管理記憶體的方法不一樣,c是使用malloc、free函式,而c++不僅有malloc/free,還有new/delete關鍵字。那malloc/free和new/delete差別?

malloc/free和new/delete差別:

①、malloc/free是c和c++語言的標準庫函式,new/delete是c++的運算子。它們都可用於申請動態記憶體和釋放記憶體。

②、由於malloc/free是庫函式不是運算子,不在編譯器範圍之內,不能夠把執行建構函式和析構函式的任務強加入malloc/free。因此c++需要乙個能完成動態記憶體分配和初始化工作的運算子new,乙個能完成清理與釋放記憶體工作的運算子delete。

③、new可以認為是malloc加建構函式的執行。new出來的指標是直接帶型別資訊的。而malloc返回的都是void指標。

④、malloc是從堆上開闢空間,而new是從自由儲存區開闢(自由儲存區是從c++抽象出來的概念,不僅可以是堆,還可以是靜態儲存區)。

⑤、malloc對開闢的空間大小有嚴格指定,而new只需要物件名。

⑥、malloc開闢的記憶體如果太小,想要換一塊大一點的,可以呼叫relloc實現,但是new沒有直觀的方法來改變。

3、c++的類是c中沒有的,c中的struct可以在c++中等同類來使用,struct和類的差別是,struct的成員預設訪問修飾符是public,而類預設是private。

4、c++支援過載,而c不支援過載,c++支援過載在於c++名字的修飾符與c不同,例如在c++中函式 int f(int) 經過名字修飾之後變為_f_int,而c是_f,所以c++才會支援不同的引數呼叫不同的函式。

5、c++中有引用,而c沒有。那指標和引用有什麼差別?

指標和引用的區別:

①、指標有自己的一塊空間,而引用只是乙個別名。

②、使用sizeof檢視乙個指標大小為4(32位),而引用的大小是被引用物件的大小。

③、指標可以是null,而引用必須被初始化且必須是對乙個以初始化物件的引用。

④、作為引數傳遞時,指標需要被解引用才可以對物件進行操作,而直接對引用的修改都會改變引用所指向的物件。

⑤、指標在使用中可以指向其它物件,但是引用只能是乙個物件的引用,不能被修改。

⑥、指標可以有多級指標(**p),而引用只有一級。

⑦、指標和引用使用++運算子的意義不一樣。

6、c++全部變數的預設連線屬性是外連線,而c是內連線。

7、c中用const修飾的變數不可以用在定義陣列時的大小,但是c++用const修飾的變數可以。

8、c++有很多特有的輸入輸出流。

C與C 的區別與聯絡

1 c 與c語言相比有何特點 全面相容c語言 支援物件導向程式設計 c 的可重用性 可擴充性以及可維護性較好。2 c 與c語言程式結構有何不同 c語言的程式結構主要包括預處理程式 自定義型別說明 常量定義 函式定義以及主函式定義幾大部分 c語言的程式結構在c 中也是適用的,此外c 還有類的定義和使用...

C 與C語言的區別與聯絡

c 與c語言的區別與聯絡 1 c語言是面向過程的,而c 是物件導向的 2 在c語言中結構體只有成員變數,而沒成員方法,而在c 中結構體中,可以有成員變數和成員函式 3 c 是從c語言中發展而來的。教程推薦 linux c語言程式設計基本原理與實踐 c 遊戲專案 中國象棋開發 教程 c c 是c語言的...

Objective C與C 的聯絡與區別

objective c語言,該語言被認為是c語言的超集,賦予了c語言物件導向的能力,完全支援c c 語言,但和c 語言的物件導向有很大不同,它是以訊息機制為底的,oc方法的本質是 訊息傳送 即objc msgsend 底層是通過方法的 sel 查詢 imp。比如可以面向向不包含該方法的物件傳送該訊息...