程式語言 C和C 的區別

2021-06-18 01:23:06 字數 1675 閱讀 6972

c++在增加物件導向的特徵之外,還對c語言進行了擴充和增強。主要的增強點有如下幾個:

1. 注釋

在c語言塊注釋的形式

/*explanation sentence

*/的基礎上,c++語言提供了一種新的單行注釋形式:

//explanation sentence

即用"//"表示注釋開始,從該位置直到當前行結束的所有字元都被作為注釋。

2. 更加靈活的變數說明

在傳統的c語言中,區域性變數的說明必須集中放在執行**的前面,資料說明語句和執行語句的混合將引起編譯錯誤。而在c++中,可以在程式**塊的任何地方進行區域性變數的說明。比如下面的**在c語言中是不正確的,在c++語言中卻可以正常執行。

for(int i = 1; i < = 100; i++);

這樣做的好處是使變數的定義和它的使用集中在一起,意義一目了然。

3. 更加嚴格的函式原型說明

c++摒棄了c語言對函式原型隨意簡化的方式,這種簡化是許多c語言程式錯誤的根源。c++語言要求程式設計者為函式提供完整的原型,包括全部引數的型別和返回值得說明。

例如,有字元型和雙精度型別兩個引數、返回整型值的函式f,原型應該寫為:

int f(char, double);

而c語言中允許將這個原型寫成"f( );"。

在函式原型說明中,引數名可有可無,並且可以和函式定義中的引數名不一致。

4. 增加了函式過載機制

過載是程式語言領域的重要概念。常規語言中最典型的例子是"+、-、×、/"等各種算術運算子的過載,這些符號可以同時用來表示多種型別資料之間的運算,這種對乙個名字或乙個符號賦予多重意義的情況就叫過載。

c++語言增加了c語言所沒有的函式過載機制。對乙個函式名可以給出多個函式定義,只要這些定義可以通過引數個數或型別的不同區別開來即可。

c++還允許對系統中預先定義的運算符號進行過載,增加新的定義。這樣做的優點是在今後對新定義型別的變數進行運算時,計算公式寫起來方便自然。

5. 函式預設引數

c++中允許函式有預設引數。所謂預設,是指函式呼叫時可以不給出實際的引數值。

6. 更加方便的動態儲存分配

c++為了提高記憶體管理上的靈活性,提供了動態記憶體分配合釋放的操作符new和delete,用來增強c語言中原有的函式malloc()和free();

7. 增加了內聯函式(inline function)

c++提供了內聯函式,用以代替c語言中的巨集。巨集的處理機構是預處理器而不是編譯器,它雖然可以提高效率,但是卻不能實現函式呼叫所擁有的引數型別檢查等機制。內聯函式不但能夠象巨集那樣節約函式呼叫時儲存現場所需的系統開銷,提高程式執行效率,還保留了函式進行引數型別檢查的機制;並且c++語言中的巨集是不能夠訪問物件私有成員變數的,但是使用內聯函式,則沒有這一限制。

8. 輸入/輸出流機制

c++保留了c語言標準庫中各種輸入/輸出函式,而且提供了一套新的輸入/輸出機制――流機制。

比如向標準輸出輸出乙個字串:

cout<<"c++ is beautiful!";

或者由標準輸入讀乙個整數,賦給變數a

int a;

cin>>a;

流式輸入/輸出運算子能夠根據變數型別自動確定資料交換過程中的轉換方式,還可以定義"<<、>>"的過載,方便了程式設計者自定義型別的資料的輸入/輸出。

9. 作用域限定運算子::

作用域限定運算子::用於對當前作用域之外的同名變數進行訪問。

C和C 語言的區別

c和c 語言的區別 這是我複習c和c 語言時做的幾點總結,不妥之處,敬請大神指正。1 c是面向結構化的設計語言,c 在c基礎上增加了物件導向的支援和物件導向的程式設計方法,支援封裝 繼承 多型。c 可定義類,c中沒有類的概念。2 c的結構僅可包含資料成員,c 擴充套件了結構,可以包含函式成員,也可以...

C 和c語言的區別

在大家眼中c 與c語言很像,但兩個有本質的區別,c語言是面向過程的,而c 是物件導向的,下面就給大家梳理梳理。1 c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在乙個標頭檔案中 而c 對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c 中的api是對window系統的大多數api有...

程式設計和c語言

一 程式和程式語言 程式 完成某項事物所預設活動的方式和活動過程 程式可以看成一系列動作的進行過程的描述。程式設計 人們描述計算機所要做的工作。二 程式語言及發展 1 機器語言。2 組合語言。3高階語言 編譯器解譯器 優先值 賦值 算術運算子。結合性 右結合 左結合 三 程式的功能分解 從上至下,逐...