VB過程中使用的參數(shù)分為實參和形參,簡單的講,在過程定義中給定的參數(shù)是形參,而在過程調(diào)用語句中給定的參數(shù)是實參。當(dāng)調(diào)用一個有參數(shù)的過程時,形參和實參逐一匹配傳遞,根據(jù)傳遞方式不同,可分為按值和按地址兩種。對參數(shù)傳遞方式的正確判別是過程學(xué)習(xí)中的一個難點,也是等級考試中的一個考點。
一、 按值與按地址方式的內(nèi)涵
按值傳遞參數(shù),實質(zhì)上是將實參的值復(fù)制一份給形參,因此形參獲得的是實參的副本,當(dāng)過程執(zhí)行中對形參進(jìn)行改變,并不會影響實參本身;按地址傳遞參數(shù),實質(zhì)上是將實參變量的地址傳遞給形參,因此形參與實參將指向同一內(nèi)存單元,當(dāng)過程執(zhí)行中形參發(fā)生改變時,對應(yīng)實參也將跟著改變。
二、 參數(shù)傳遞方式判別方法
判斷參數(shù)傳遞方式,不能單純的看過程定義中形參前的修飾限定詞有無ByVal。參數(shù)傳遞到底采用何種方式,不僅取決于過程定義,還取決于過程調(diào)用,即與對應(yīng)實參的具體形式也有很大關(guān)系。因此,應(yīng)該從以下三個方面綜合考慮:
1. 形參是否為數(shù)組或者控件
2. 形參前是否有ByVal修飾
3. 對應(yīng)實參是否為表達(dá)式或者值
一、 按值與按地址方式的內(nèi)涵
按值傳遞參數(shù),實質(zhì)上是將實參的值復(fù)制一份給形參,因此形參獲得的是實參的副本,當(dāng)過程執(zhí)行中對形參進(jìn)行改變,并不會影響實參本身;按地址傳遞參數(shù),實質(zhì)上是將實參變量的地址傳遞給形參,因此形參與實參將指向同一內(nèi)存單元,當(dāng)過程執(zhí)行中形參發(fā)生改變時,對應(yīng)實參也將跟著改變。
二、 參數(shù)傳遞方式判別方法
判斷參數(shù)傳遞方式,不能單純的看過程定義中形參前的修飾限定詞有無ByVal。參數(shù)傳遞到底采用何種方式,不僅取決于過程定義,還取決于過程調(diào)用,即與對應(yīng)實參的具體形式也有很大關(guān)系。因此,應(yīng)該從以下三個方面綜合考慮:
1. 形參是否為數(shù)組或者控件
2. 形參前是否有ByVal修飾
3. 對應(yīng)實參是否為表達(dá)式或者值