C與C 的區別

2021-09-27 13:40:57 字數 1551 閱讀 8650

面向過程程式設計是就分析出解決問題題的不走,然後把這些步驟一步一步的實現,使用的時候乙個乙個的一次呼叫就可以了。

物件導向程式設計就是把問題分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描述某個市委在整個解決問題的步驟中的行為。

舉個例子(玩五子棋)

使用面向過程的思想來考慮就是:開始遊戲,白棋先走、繪製畫面、輪到黑子、繪製畫面、判斷輸贏、重複之前的過程,輸出最終結果。

使用物件導向的思想來考慮就是:玩家系統、棋盤系統、判定系統、輸出系統。

物件導向就是高度的將實物抽象化,也就是功能的劃分,面向過程就是自頂向下程式設計,也就是步驟的劃分

c99有32個關鍵字

c++98有63個關鍵字

一些關鍵字細微的區別

1、struct:在c語言猴子那個struct定義的變數中不能由函式,在c++中可以有函式

2、malloc:malloc的返回值是void*,在c語言中可以賦值給任意型別的指標,在c++中必須要進行強制型別轉換,否則會報錯。

3、class和struct:class是對struct的擴充套件,struct的預設訪問許可權是public,而class的預設訪問全顯示private

c原始檔的字尾是.c,c++原始檔的字尾是.cpp,在vs中,如果在建立原始檔的時候什麼都不給,預設的就是.cpp

在c語言中,如果乙個函式沒有指定返回值得型別,預設的返回值為int型別,並且會返回乙個隨機數,一般為0xcccccccc,c++中如果乙個函式沒有返回值,則必須要指定為void,否則編譯不會通過。

在c語言中,函式沒有指定引數列表的時候,預設可以接受多個引數,但是不支援無名引數,在c++中,因為嚴格的引數型別檢測,沒有引數列表的函式,預設為void,不接受任何引數,但是他支援無名引數。

預設引數的宣告或定製函式時的引數指定乙個預設值。在呼叫該函式時,如果沒有指定實參則可以採用該預設值,則使用指定的引數。但是這在c語言中是不支援的。

函式過載是函式的一種特殊情況,指的是在同一作用域中,宣告幾個功能類似的同名函式,這些同名函式的形參列表必須不同,或者是在類中使用const修飾的函式和沒有使用const修飾的函式,常用來處理實現功能類似但是資料型別不同的問題。在c語言中沒有函式過載,是因為c語言對函式名的修飾只是在函式名前新增乙個下劃線,但是c++對函式名的修飾會新增上該函式的返回值和引數列表。

在c語言中使用的是scanf()和printf()來實現的,但是c++中是使用類來實現的。cin、cout物件,他們本身並不是c++語言的組成部分,在c++中不提供內在的輸入輸出運算子,這時與其他語言不相同的地方,他的輸入和輸出是通過c++中的類來實現的,cin和cout都是這些類的例項,是在c++語言的外部實現的。

c語言使用的是malloc/free函式,c++在此基礎上還新增了new/delete兩個關鍵字。

c語言中const修飾的變數不可以用在定義陣列時的大小,並且在定義的時候可以不設定初始值,但是在c++中修飾的變數在定義的時候必須要設定初始值,並且可以用在定義陣列的大小,,如果不進行取位址或解引用的話,是存放在符號表中的,不開闢記憶體。

C 與C的區別

l c如果不寫返回值,預設是int,而c 中不能不寫返回值 可用void表示無返回值 如func1 l int func1 在c中表示可帶任意引數的函式,這是c的漏洞,使得它避開了引數型別檢查 而c 中表示不帶引數的函式。2 標頭檔案的區別 l c 的標頭檔案去掉了c中的.h,以c字首開始。比如,變...

C與C 的區別

1.void型指標 int x malloc sizeof int 10 在c裡面是合法的,但是在c 中編譯不通過。從bjarne stroustrup給出的解釋是這種型別是不安全的。就是說你可以使用乙個void型的指標指向任何位址,如果你分配了乙個位址給這個void指標指向另乙個與它型別不同的指標...

C與C 的區別

在很大程度上,標準c 是標準c的超集.實際上,所有c程式也是c 程式,然而,兩者之間有少量區別.下面簡要介紹一下最重要的區別.在c 中,民,區域性變數可以在乙個程式塊內在任何地方宣告,在c中,區域性變數必須在程式塊的開始部分,即在所有 操作 語句之前宣告,請注意,c99標準中取消了這種限制.在c中,...