c++ 的加強主要表現在:型別的加強、物件導向支援
1、變數定義
c++更強調語言的實用性,所有的變數都可以再需要使用的時候再定義,c語言中的變數都必須在作用域開始的位置定義
int c = 0;
for (int i = 1; i < 3; i++)
}
register 關鍵字請求編譯器將區域性變數儲存與暫存器中2、同名變數早期的c語言編譯器不會對**進行優化,因此
register
變數是乙個很好的補充
在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只是個唯讀變數,本質上還是變數,有儲存空間,定義陣列長度用變數當然會出錯了。但...