型別檢查的區別
列舉的區別
左值也可被賦值
1、型別檢查更嚴格
//c++型別檢查比c語言更加嚴格
int main()
同樣的**在c語法中就能編譯通過,但是在c++中就會報錯。
1.1const int a在c++中就必須要初始化,不然就報錯,但是在c語言中就能編譯通過,而且是個隨機值。
1.2上列中的 int p = &a在c++中編譯不會通過,原因是變數a是const int型別,那麼取位址就為const int 型別,把乙個const int 型別賦值給int 在c++語法中是通不過的,但是c語言就可以通過,而且可以用該指標間接的修改const int a的值,這是c語言的一種缺陷。
1.3我們都知道mallo(100)返回的是void ,在c++語法中建議倆個型別相同才賦值,所以char *p == void 在c++語法中應先把void 強轉為char ,注:基礎型別可以相互轉化如int ,double, float。
2、列舉的區別
eume bool
;int main()
2.1在c++中列舉只可以賦值你列舉的那些值,不可以賦值其他的,否則報錯,但是c語言的列舉可以.
2.2在c++的語法中不必須使用 enum、struct等字首,但是在c語言中就必須要使用字首來宣告,如:enum bool a。
enum
;//上面的列舉等價於 #define off 0
// #define on 1
enum
week
int main
3.1定義列舉變數不能賦予列舉值以外的值。如:week week = 100; 但是在c語言中不會報錯。
3.2用列舉來代替巨集,所以c++中建議用列舉或者用const來代替巨集.
3、c++表示式也可以做左值
int main()
4.1在c++中表示式可以做左值,主要是運算子過載機制,具體的我們在運算子過載去分析 C 學習筆記之C C 的區別
c 學習的基本概要 1 c和c 的去別 1 帶預設值的引數的函式 2 inline內聯函式 3 函式過載 4 引用 5 const 指標 引用 6 new delete 7 命名空間 2 c 物件導向 3 c 模板程式設計 4 c 運算子過載 5 c 繼承和多型 6 c 的i o流的異常處理 7 c...
c與c 的區別(一)
最近在學習c 很多人都說c 是c的擴充,但是我認為這兩種語言雖說前面的語法是差不多的,但是後期的程式設計包括思想都是不同的。我覺得以這本書為我的學習書目,總結一些c和c 不同的地方,當然也有一些是以前我沒有注意到的地方,不代表c中沒有這種特性。1.main 函式的返回型別必須為int,即整數型別。i...
C與C 的區別(一)
c語言 c89 不支援帶有預設值的函式 c c 99 支援帶有預設值的函式 要從右到左,給形參,預設值。那麼什麼是帶預設值的函式呢?int sum int a 10,int b 20 intmain 這就是傳說中的帶預設值的函式,它的實參不是通過函式呼叫傳遞的而是通過在定義或聲 明函式時在函式體內給...