C C 語言雜談

2021-07-13 04:13:57 字數 1799 閱讀 7123

表示開始直接學c++,有點分不清c和c++的語法 =_= 這裡先找一點,遇到了再補充

c語言和c++語言在語法上面的部分區別:

1、c語言的定義必須在最前面,c++可以在任何地方定義,比如

for(int i=0;i<100;i++) s+=i;

在c++中是正確的,但是在c語言中是錯誤的

2、型別強制轉換,c語言必須將型別括起來,c++可以將變數括起來。比如int(a)在c++中是正確的,但是在c語言中是錯誤的,必須寫為(int)a

3、c是純面向過程語言,沒有『類』這種東西

c++是c語言的超集,雖然c++相容c,但是c++中也有與c語言中不相容的地方。

一、變數宣告的位置

c中變數宣告和**是分開的,必須在函式開始處宣告;

c++中,變數可以在任意處宣告,只要保證先聲名後使用的原則就可以。

二、struct結構體方面

1、用struct定義變數

struct mystruct

在c中宣告struct變數要這麼寫:struct mystruct a;

在c++中前面不用加struct:mystruct a;

一種相容的用法是:

typedef struct _mystruct

mystruct;

然後用mystruct 定義變數。列舉型(enum),聯合體型別(union)也是同樣。

2、在c++中,struct結構體支援成員函式的定義,c中不行。另外要注意的是,c++中成員函式的預設訪問說明符為public,這一點和類不同,類的預設訪問說明符為private.

三、bool型別值

c++中有bool(或boolean型別);c中可沒有這樣的bool型別,均為數值型別!需要注意的是真為非零(如:1,52,-5,-2等),假的數值為0。

四、注釋的不同

c中的注釋至有一種 ;

c++中的注釋包含兩種和//。

五、強制資料型別裝換

c中的強制轉化形式為:(型別)變數;

c++中還可以使用:型別(變數)的形式。

六、賦值

c語言中的賦值只有一中即:=;

c++中除了使用=外,還可以使用()。例如:int  x(5);就等於: int x=5;我想這種寫法是給c++中物件初始化時初始化屬性是物件時使用的,那麼對於基本型別也可以使用了。

七、函式

1、c語言中函式沒有引數預設值,在c++中函式有引數預設值的概念,注意引數預設值與函式過載的區別。

2、c語言中函式的定義又兩種形式,經典形式和標準形式,c++中只支援標準形式。

標準形式:int string(int x,float y)

經典形式:  int string(x,y)int x;float y;

3、c++的函式必須先聲名原型或定義才能使用,因為c++是強資料型別語言,在c語言中,未聲名和定義函式之前呼叫函式是允許的.

八、運算子&和關鍵字const

int &rtux()

rtux()=5;

以上表示式在c++中完全正確,但在c語言中是非法的。

const關鍵字要注意一點不同的就是在c++的類函式中,函式可以聲名是可以用const,表示這個函式沒有改變類中的任何屬性。如:void unchange()const;c不能有這樣的生明。

九、extern說明符

在c語言的某些版本中,可以在程式中多次使用乙個全域性變數而無需使用extern說明符。但在c++中除定義全域性變數外,在其他模組使用應先用extern生明。

十、void指標

在c語言中void指標可以賦給任何型別的指標,但在c++中,卻不行,但可以先進行強制資料型別轉換,在賦值。

C C 指標雜談(一)

在這樣乙個定義中int p 這樣就定義了乙個指標變數,p是它的名字,int是它的型別,他現在儲存的位址是一塊不清不楚的位址 這就是乙個野指標 現在使用它時,會造成乙個執行時錯誤,這種情況是一定要避免了,當不知道乙個指標該指向什麼地方時,應該把它指向空的,如int p null 這樣定義,這個指標才是...

如何正確入門C C 系列(雜談)

程式設計實踐和誤區 總結學習c語言 這裡才是正題,如果沒有拖延症問題,可以直接從這裡開始 大學學的是電子資訊科學與技術 網路資訊科技 專業,雖然說經歷過相對比較系統的訓練,但是,三年多下來,感覺學的還是不明白,也參加了考研,但是由於自己的不夠堅定,複習效果不好 還有兩周出成績 作為乙個資源蒐集怪,但...

C語言入門雜談

我覺得乙個人第一次做的事情會影響他以後做這方面的風格,就像是我第一次學習程式設計,我的老師是傳智播客的尹成,我的 風格也接近於他的教學方式,其次就是對於學習方法的探索,把我領進門的是尹成,同時我的學習方法也是在他的影響下形成的,如果是乙個比較嚴謹的老師,那我在寫 的時候會比較嚴謹,如果是比較馬虎的老...