C到C 的公升級

2021-09-13 13:06:56 字數 1469 閱讀 2344

c++ 的加強主要表現在:型別的加強、物件導向支援

1、變數定義

c++更強調語言的實用性,所有的變數都可以再需要使用的時候再定義,c語言中的變數都必須在作用域開始的位置定義

int c = 0;

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

}

register 關鍵字請求編譯器將區域性變數儲存與暫存器中

早期的c語言編譯器不會對**進行優化,因此register變數是乙個很好的補充

2、同名變數

在c++中,不允許定義多個同名的全域性變數。

3、struct關鍵字的加強

c語言中的struct定義了一組變數的集合

c語言中的struct定義的識別符號並不是一種新的型別

c++中的struct用於定義乙個全新的型別

// c語言

typedef struct _tag_student student;

// 將struct _tag_student型別起了乙個別名student

struct _tag_student

// c++

// struct定義乙個全新的型別

struct student

;

4、小思考

int f()int f(void)的區別:有沒有區別,要看用什麼編譯器

5、預設型別

c++中所有的識別符號都必須顯示地宣告型別

c語言中地預設型別在c++中是不合法的

f(i)

g()

在c語言中:

在c++中:

c++中無缺省型別,如果沒有引數,就是不接受任何引數,int f(void)只是為了相容c語言

c++ 不接受無返回值型別的函式,不允許預設型別

#include // c++中,定義了乙個新的型別student

struct student

;// c++中有問題,不合法

f(i)

// c++不合法

g()int main(int argc, char *ar**)

; student s2 = ;

f(10);

printf("g() = %d\n", g(1,2,3,4,5));

return 0;

}

6、總結
c++更強調實用性,可以在任意的地方宣告變數

c++中的register只是乙個相容c的作用

c++編譯器能夠更好地進行優化

c++中地任意識別符號都必須顯示地指明型別

C到C 的公升級

c與c 的關係 1.c 繼承了所有的c特性 2.c 在c的基礎上提供了更多的語法和特性 3.c 的設計目標是執行效率與開發效率的統一 c 對c的加強 1.c 中更強調語言的 實用性 所有的變數都可以在需要使用的時候再定義 for int i 0 i 10 i c 編譯器不報錯 注意 c語言中的變數都...

c到c 的公升級

c 繼承了c的所有特性,c 在c的基礎上同時增加了許多新的語法和特性,c 的目標是實現執行效率與開發效率相統一。c 中更加強調語言的實用性,所有變數可在使用的時候再定義。例如 include int main int argc,char argv printf c d n c printf end....

C到C 的公升級

即使分配了空間也不會用儲存空間裡面的內容,只會使用符號表的值。再舉個例子 1 constint a 10 2 constint b 20 3 int c a b 上面的 在c中會報錯 無法確定陣列長度 因為在c中const只是個唯讀變數,本質上還是變數,有儲存空間,定義陣列長度用變數當然會出錯了。但...