下周考C++了,敲程序熟悉一下子,記下來,用慣了linux,不想在windows中用VC6.0了,直接使用vim編寫,利用g++編譯連接。源程序直接放到VC6.0中也能用!
實例1
設某次體育比賽的結果有4中可能:勝(WIN)、負(LOSE)、平局(TIE)、比賽取消(CANCEL),編寫程序順序輸出這4中情況。
知識點:主要是練習枚舉類型enum的使用
編譯運行結果
實例2
將兩個整數交換次序后輸出。
知識點:值傳遞是指當發生函數調用時,給形參來分配內存空間,並用實參來初始化形參(直接將實參的值傳遞給形參)。這一過程是參數值的單向傳遞關系,一旦形參獲得了值便與實參脫離關系,此后無論形參發生了什么樣的改變,都不會影響到實參。
編譯運行結果
分析:從上面的運行結果可以看出,並沒有達到交換的目的。這是因為,采用的是值傳遞,函數調用時傳遞的是實參的值,是單向傳遞過程。形參值的改變對實參值不起作用。
實例3
利用引用傳遞完成實例2功能
知識點:① 聲明一個引用時,必須同時對它進行初始化,使它指向一個已存在的對象。② 一旦一個引用被初始化后,就不能改為指向其他對象。③ 用引用作為形參,在函數調用時發生的參數傳遞,稱為引用傳遞。
編譯運行結果
可見,通過引用傳遞實現了數據交換的功能。
實例4
值傳遞與引用傳遞的比較。
分析:子函數 fiddle 的第一個參數 in1 是普通的 int型,被調用時傳遞的是實參v1的值,第二個參數in2是引用,被調用時由實參v2初始化后稱為v2的一個別名。於是在子函數中對參數 in1 的改變不影響實參,而對形參in2的改變實質上就是對主函數中變量 v2的改變。因而返回主函數后,v1值沒有變化,v2值發生了變化。
編譯運行結果