18)C++對C的增強
阿新 • • 發佈:2018-01-02
%d c++ ++ 值類型 style 分享圖片 del nbsp 枚舉
- 在C++中所有的變量都必須有類型,但是在C語言中沒有這個要求,C語言中的默認類型在C++中不合法,
1 #include<stdio.h> 2 f() 3 { 4 return 10; 5 } 6 int main() 7 { 8 int a=f(); 9 printf("%d\n",a); 10 return 0; 11 12 } 13 14 //上面的代碼,在C語言中是可以的,因為函數的默認參數和返回值是int 但是在C++中,就不行。在C++中沒有默認的參數和返回值類型。
- 而且 我在我的C語言代碼中,傳參數時,還可以這樣(關鍵看我的那個f函數傳參)
1 #include<stdio.h> 2 f() 3 { 4 return 10; 5 } 6 int main() 7 { 8 int a=f(10,20);//看,我的函數定義沒有參數,但是我在調用時加了參數,居然可以運行 9 printf("%d\n",a); 10 return 0; 11 12 }
3. 新增了bool類型的關鍵子
- 三目運算符的加強:
- 在C語言中 只能作為右值,不能作為左值,除非是指針
1 a<b?a:b=50 2 //上面的就報錯 3 4 //下面的就可以 5 *(a>b?&a:&b) =50
- 但是在C++中,三目運算符可以作為左值
1 (a>b?a:b)=50 2 //上面的代碼在C語言中報錯,但是在C++中不會報錯
這個為啥在C++中不報錯,是因為返回的是那個變量a的引用
- 在C語言中 只能作為右值,不能作為左值,除非是指針
- 三目運算符的加強:
4. const加強
5.枚舉的加強
--反正有變化,但是具體總結,先不總結了
18)C++對C的增強