在聲明方法時,所定義的參數是形式參數(簡稱形參),這些參數的值由調用方負責為其傳遞,調用方傳遞的是實際數據,成為實際參數(簡稱實參),在調用方法時,,必須嚴格按照方法所定義的參數類型和順序指定實參。方法的參數傳遞按性質分為按值傳遞和按引用傳遞。
1.安值傳參
按值傳遞時,把實參變量的值賦給相應的行參變量,即被調用的方法接受的只是實參的數據值。當方法內部更改了形參數據時,不會影響到是參變量的值,即實參和形參變量是兩個不相同的變量,它們具有各自的內存地址和數據值。故實參傳遞給形參是一個單向值傳遞。值類型的參數在傳遞時默認為按值傳參。string和object雖是引用型數據,但從表現形式來看,其具有按值傳參的效果。
2.按引用傳參
方法只要能返回一個值,在實際中,常常需要方法能夠返回多個值或修改傳入的參數值並返回,此時只用return語句是無法做到的,這是可以使用按引用傳參來實現。
在傳遞引用參數時,調用方將把實參的引用傳遞給相應的形參。實參的引用代表了數據的內存地址,因此,形參和實參指向同一個引用。如果在方法內部更改形參所引用的數據值,那麼同時修改了實參所引用的數據值。當值類型和string類型參數要按引用方式傳遞時,通過ref關鍵字聲明引用參數,無論是實參還是形參,要按引用傳參,就必須添加關鍵字ref。
3.輸出參數
方法中的return只能返回一個值,引用參數可以返回多個值,但在用ref修飾的參數在傳遞前必須先初始化。但有時參數在傳遞之前並不確定,其值應在方法調用結束後返回,這時可以使用使用輸出參數,它不需要對實參初始化,輸出參數專用於方法中的數據通過形參返回給實參,但不會將實參的值傳遞給形參。一個方法中可以有多個輸出參數。
在C#中,通過out關鍵字來聲明參數,無論是實參還是形參,只要是輸出參數,就必須添加out關鍵字。
用ref和out修飾的參數都是引用類型傳參形式,在方法內部的修改和賦值都會被保留在實參中,但它們在使用時有一定的區別。
(1)用ref修飾的參數,在方法傳參之前必須對實參賦值。
(2)用out修飾的參數,在方法傳參之前不必初始化,但在方法中必須賦值後才能使用,並且在方法結束前,必須對該參數賦值。
4.引用類型的參數傳遞
引用類型的參數傳遞是按引用傳遞的,所以引用類型的參數傳遞時不需ref和out關鍵字(string除外),引用類型參數的傳遞,實際上是將實參數據的引用復制到形參。所以形參和實參共同指向同一內存區域。
5.數組型參數
數組也是引用類型數據,把數組作為參數傳遞時,,也是引用傳遞。但數組作為參數作為參數,有兩種形式:一種是在形參數組前加params修飾,另一種是不加params關鍵字。不加params修飾符時,所對應的實參必須是一個數組名;添加params修飾符時所對應的實參可以是數組名,也可以是數組元素值的列表,此時系統將自動把元素組織到一個數組中。不論哪種,形參數組都不能定義數組的長短。
在使用params修飾符時,要注意以下幾點:
(1)params可以修飾任意類型的參數。
(2)params只能修飾一維數組。
(3)不能僅基於params關鍵字來重載方法。
(4)不能對params數組使用ref和out關鍵字。
(5)params數組只能在最後一個參數(即每個方法只能有一個params數組)。
6.方法的重載
在這簡單介紹一下方法的重載。重要介紹方法重載的特點:
(1)重載方法的名稱必須相同。
(2)重咋方法的參數個數或類型必須不同。
在調用具有重載的方法時,系統會根據參數的個數或類型來確定最匹配的方法調用。
《c語言編程百例》,按照例子來學習比較容易上手,比直接看那些原理性的書籍強 //
是寫程序的機試還是理論的筆試?
機試推薦《程序設計引導及在線實踐》,大綱級書籍,具體鏈接:ai.pku.edu.cn/book/
理論的筆試肯定還是以譚浩強的為主,不過確實有些亂,你不妨買本它配套的習題之類的看看,譚浩強此書配套習題相當多,基本上都大同小異,根據手頭已有的資料為主來選吧,具體不推薦了。
vc6.0 這個有學習版的 專業版的 企業版的
只是學的話 學習版的一般幾十兆的就行了 企業版的會有幾百兆很大