1. 程式人生 > >C++一些容易忽略的知識點

C++一些容易忽略的知識點

C和C++的區別以及聯絡:

先看下C語言:
C語言是一種面向過程的程式語言,是由資料結構和演算法組成的C語言程式設計,強調的是執行效率
1、C語言的歷史:
*1969至1973年;
美國貝爾實驗室;*

2、C語言的功能:
結構化程式設計;

3、C語言的優點:
高效、靈活,應用領域廣泛;

4、C語言的缺點:
C語言沒有自動釋放的機制,如果程式設計師在寫程式時忘記釋放記憶體時,會產生很嚴重的後果。
*C 風格字串——容易導致程式崩潰或執行惡意程式碼;
動態記憶體管理——容易導致記憶體溢位,程式和系統僵死。*
C語言的語法限制不太嚴格,很多型別可以進行強制轉換的,

再來看一下C++語言
C++語言是一種面向物件的程式語言,是一種強調開發效率的開發語言。
1、C++語言歷史:
*1979年至大約1983年;美國貝爾實驗室;
2011年C++11標準;2015年C++14標準。*

2、C++語言功能:
*支援多種程式設計正規化:過程化程式設計、面向物件程式設計、泛型程式設計等。
增強了C語言;*

3、C++語言特點:
兼顧開發效率和執行效率,對設計開發大型應用系統有很好的支援,比如大型遊戲、電子商務、資料庫和搜尋引擎。

那麼,C語言和C++語言有什麼聯絡呢?
C++語言由三個部分組成,分別是:
(1)低階語言,大部分是從C 語言繼承來的;
(2)比較高階的語言特性,允許我們定義我們自己的型別以及組織大規模的程式和系統;
(3)標準庫(STL),標準庫使用這些高階語言特性提供了有用的資料結構和演算法。

C++程式執行的流程圖:
這裡寫圖片描述

關於字面值常量
字面值常量的英文翻譯是literal constant,之所以被稱為常量是因為它的值不可修改,每個字面值都有相應的型別。
常見的字面值常量有:

  • 整型字面值常量

通常二進位制的表示方式是在前面加上‘0B’如0B10,0B110,而整形字面值可以使用十進位制,八進位制,十六進位制三種進行表示,其表達方式列舉如下:

10//十進位制
012//八進位制
0xB//十六進位制

其型別預設為int 或者long型別,其精度決定於字面值,下面列舉幾個例子:

128u//unsign
1L//long
1235UL//unsigned long 
8Lu//unsigned long 

浮點字面值
其規則如下:

extern 宣告變數而不定義它,宣告不是定義,也不分配儲存空間。