從C語言到C 語言

2021-09-25 21:08:55 字數 2380 閱讀 1255

c++讀作「c加加」,是「c plus plus」的簡稱。顧名思義,c++ 是在c語言

的基礎上增加新特性。從語法上看,c語言是 c++ 的一部分,c語言**幾乎不用修改就能夠以 c++ 的方式編譯。

對於c和c++的關係,有很多種說法,新人很容易認為c++是c的公升級版,c++比c要高階,c++高大上,c過時了,這種想法不一定對,我們先來看乙個資料。

從上表中看出,在中國以外,c程式設計師比c++程式設計師多很多。

這麼多年了,我也搞不清楚自己是c程式設計師,還是c++程式設計師,好像沒什麼差別。

對我來說,採用c++的目的就是提高開發效率,c++有很多新的特徵,這些新特徵並不一定實用,甚至很煩人,所以我仍然採用斷章取義的方式來介紹c++,不管是c還是c++,實用就好。

c++標頭檔案一般採用.h字尾,也用有.hpp的。

c++程式檔案一般採用.cpp字尾,也有用.cc的,建議採用.cpp。實際上,c++對程式檔案的命名沒有強制要求,採用.cpp為字尾是大部分程式設計師的習慣。

在某些unix系統中,c和c++是兩個不同的編譯器,在centos中,c的編譯器是gcc,c++的編譯器是g++。

在命令提示符下輸下g++,如果出現以下提示,表示已安裝好g++編譯器。

如果出現以下提示,表示還沒有安裝好g++編譯器。

用root使用者登入,輸入yum install gcc-c++,按系統提示,選擇y,在安裝g++的過程中,如果出現了錯誤,就嘗試多幾次。

編譯c程式的命令是gcc,編譯c++程式的命令是g++,g++命令和gcc命令的用法相同,把gcc改為g++就可以了,我們在學習c語言時寫的那些示例程式,基本上都可以用g++來編譯。

c語言中,我們使用 scanf 和 printf 來對資料進行輸入輸出操作。在

c++語言中,c語言的這一套輸入輸出庫我們仍然能使用,c++增加了cin和cout輸入輸出庫,我不想用它,因為cin和cout對格式化的支援實在是太麻煩。

c語言並沒有徹底從語法上支援「真」和「假」,只是用 0 和非 0 來代表。這點在 

c++中得到了改善,c++ 新增了 bool 型別(布林型別),它占用 1 個位元組長度。bool 型別只有兩個取值,true 和 false:true 表示「真」,false 表示「假」。

bool 是型別名字,也是 c++ 中的關鍵字,它的用法和 int、char、long 是一樣的,可以用=賦值,可以用於函式的引數和返回值。

bool flag=true;

if (flag) printf("flag is true");

else printf("flag is fals");

flag=false;

if (flag) printf("flag is true");

else printf("flag is fals");

ansi c 規定,所有區域性變數都必須定義在函式開頭,在定義變數之前不能有其他的執行語句。c99標準取消這這條限制,但是某些編譯器對c99的支援很不積極,仍然要求變數定義在函式開頭,或者只支援一部分。

取消限制帶來的另外乙個好處是,可以在 for 迴圈的控制語句中定義變數。

int sum = 0;

// 在for迴圈的條件語句內部定義變數i

for(int ii=1; iii<=100 ;ii++)

total = total + ii;

在c語言中,函式在宣告的時候指定引數列表,呼叫的時候函式引數的個數和資料型別必須與函式宣告引數列表相同,但是,在c++中,宣告函式的時候,可以為函式指定預設引數,呼叫時預設引數可以不填寫。例如:

int writetofile(file *fp,char *strbuf,bool enbuffer=true);

enbuffer引數表示是否啟用緩衝區,writetofile函式被呼叫的時候,如果只寫fp和strbuf引數,不寫enbuffer引數,enbuffer引數將預設為true,例如:

writetofile(fp,strbuf);

在c語言中,動態分配記憶體用 malloc() 函式,釋放記憶體用 free() 函式。

在c++中,這兩個函式仍然可以使用,但是c++又新增了兩個關鍵字,new 和 delete,new 用來動態分配記憶體,delete 用來釋放記憶體。

1、c++函式過載;

2、類的基本知識。

3、vector容器。

4、引用。

5、string類。

6、類的繼承。

最多5天就可以學完。

如果這篇文章對您有幫助,請點贊支援,或在您的部落格中**我的文章,謝謝!!!

從C語言到C (一)

1.輸入輸出流 using std cout 標準輸出流 using std endl 換行 cout em1.t a cout endl 2.結構體的宣告 在c 裡,不需要加struct 3.類的定義 類名稱前面加c,類成員前面加m 如果不加關鍵字public和 預設為 private 即如果你在...

從C語言到彙編,從彙編到C語言

看雪一同志寫的文章,我覺得很基礎和有用,知識著眼於小處。積累才是王道!一 迴圈語句與發彙編後的機器語言 1 for迴圈 下面是一段c語言的 我們的目的是來看其反彙編的結果 int myfunction int a,int b return c 前面的反彙編暫時不理它,這裡從for的地方開始反彙編,結...

從C語言到OC

ios開發 包括iphone和ipad上的應用 使用的是objective c這種語言,oc語言誕生於1986年,也是一門較為古老的語言。oc是完全相容c語言的,也就意味著c語言中所有的語法特性在oc中都是可以使用的,所以很多用c語言開發的庫和函式,是可以在oc語言中直接使用的 這也是oc語言中大部...