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