C 對C的擴充(體現在面向過程程式設計部分)

2021-07-05 19:30:55 字數 2364 閱讀 2468

1、c++的輸入輸出

c++的輸入輸出在保留c語言的輸入輸出系統之外,還利用繼承的機制建立出一套自己的方便、一致、安全、可擴充的輸入輸出系統,即c++輸入輸出(i/o)流類庫。

有了「流」的思想,對所有的輸入輸出就都是一樣的了,輸入時,位元組流從輸入裝置流向記憶體,輸入裝置可以是鍵盤、磁碟、光碟等,使用時建立輸入裝置的輸入流物件,然後通過》運算子將資料從輸入流物件讀入記憶體的變數或其他資料結構中,輸出時,位元組流從記憶體流向輸出裝置,包括顯示器、磁碟或其他輸出裝置,使用時建立輸出裝置的輸出流物件,然後通過《運算子講資料從記憶體輸出到輸出流物件,完成輸出操作。

2、c++對c語言資料型別的擴充套件

基本型別增加了布林型,構造型別增加了類型別,此外還增加了引用型別。

細節上的應用區別

1)常變數 

為了使常量 也能像變數那樣進行型別檢查,c++提供了用const定義常變數的方法,如:const float pi =3.14159; float const pi = 3.14159;

pi 前面有乙個關鍵字const,就表示pi是乙個常變數,定義pi時必須對pi進行初始化,之後pi的值就不可能再改變了,任何修改pi或者給pi賦值的語句都是非法的,程式不能通過編譯。也可以使用表示式對常變數進行初始化,系統會先計算表示式的值,然後再將值賦給常變數。另,系統在靜態儲存區給常變數分配記憶體單元,而普通變數是在動態儲存區分配記憶體單元的。

2) 指標

空指標 int *p = null;(或 0)

野指標 int *p;(未初始化的指標)

一般 都在定義指標時將指標初始化為空指標。程式中要徹底杜絕使用野指標。一旦指標被free,不再使用時,及時置為null。

指標與const

const 與 * 之間的相對位置關係有兩個,可以形成三種指標

只在*之前有const的指標,稱為指向const變數的指標

1)如果乙個變數已經被宣告為const常量,則只能用指向const變數的指標去指向它, 而不能用一般的指標(指向非const型變數的指標)去指向他。

2)指向常變數的指標也可以指向普通變數,此時,可以通過指標訪問該變數,但是不能通過指標改變該變數的值,但是可以通過變數本身修改值。

3)指向const變數的指標本身可以修改,即可以指向其他變數。

4)兩種形式:const int *p = null ; int const *p = null;

/** 指向常變數的指標 **/

#includeusing namespace std;

int main()

int main()

int main()

; for(int i=0;i<8;i++)

cout<

1 2 3 4 5 6 7 8

10 2 3 4 5 2 7 8

(3)函式與const

const 修飾函式的引數      void func(const int *a,const int & b);

const修飾函式的返回值   const t func(); 或者 const t *func(); 

const修飾整個函式        void func() const; 不能修改資料成員,不能呢呼叫其他非const成員函式,const物件只能訪問const函式

(4)函式過載

同名函式,函式功能類似,只是所處理的資料型別不同。函式呼叫時編譯系統會根據實參的資料型別和個數自動選擇合適的add函式的版本,根據參數列來匹配匹配度最高的。

函式過載需要函式引數的型別或個數必須至少有其中之一不同,函式返回值型別可以相同,也可以不同。單是,不允許引數的個數和型別都相同,而只有返回值型別不同。單是程式的可讀性大大下降。

有過載時,為了避免出現二義性,必須完全匹配才行。

#includeusing namespace std;

int add(int a,int b);

int add(float a,float b);

int main()

{ float a=1.0;

int b =1.1;

cout<

(5)內聯函式

系統在編譯時將所呼叫的函式**直接嵌入到主調函式中,避免了函式呼叫的開銷,適合規模較小(1~5)行而又頻繁呼叫的情況,是一種空間換時間的策略。

#includeusing namespace std;

inline int add(int a,int b);

int main()

{ float a=1.0;

int b =1.1;

cout<

(6)字串變數、複數變數

string 類物件 (常用)、複數類模板(少用,即學即用)

《C 程式設計教程》 C 對C語言的擴充

c 型別轉換符一共有四種 static cast expression const cast expression dynamic cast expression reinterpret cast expression 1 static cast 最常用的型別轉換操作符,它主要執行非多型的轉換,用於...

C 對C的擴充

int a int b a 宣告b是乙個整型變數a的引用變數 型別可以被 過載 霧 includeusing namespace std template 函式模板 t max t a,t b,t c int main 內建函式是在編譯時,將所呼叫函式的 嵌入到 主函式中。inline int ma...

C 對C語言的非物件導向特性擴充 2

include int add int x,int y int main int add int x,int y 不過也可以採用簡潔的方式來宣告,如 int add add 都可以通過編譯 但是在c 裡,如果函式定義在後,呼叫在前,那函式原型的宣告必須是int add int x,int y 函式名...