一、 按值與按地址方式的內(nèi)涵
按值傳遞參數(shù),實(shí)質(zhì)上是將實(shí)參的值復(fù)制一份給形參,因此形參獲得的是實(shí)參的副本,當(dāng)過(guò)程執(zhí)行中對(duì)形參進(jìn)行改變,并不會(huì)影響實(shí)參本身;按地址傳遞參數(shù),實(shí)質(zhì)上是將實(shí)參變量的地址傳遞給形參,因此形參與實(shí)參將指向同一內(nèi)存單元,當(dāng)過(guò)程執(zhí)行中形參發(fā)生改變時(shí),對(duì)應(yīng)實(shí)參也將跟著改變。
二、 參數(shù)傳遞方式判別方法
一、 按值與按地址方式的內(nèi)涵
按值傳遞參數(shù),實(shí)質(zhì)上是將實(shí)參的值復(fù)制一份給形參,因此形參獲得的是實(shí)參的副本,當(dāng)過(guò)程執(zhí)行中對(duì)形參進(jìn)行改變,并不會(huì)影響實(shí)參本身;按地址傳遞參數(shù),實(shí)質(zhì)上是將實(shí)參變量的地址傳遞給形參,因此形參與實(shí)參將指向同一內(nèi)存單元,當(dāng)過(guò)程執(zhí)行中形參發(fā)生改變時(shí),對(duì)應(yīng)實(shí)參也將跟著改變。
二、 參數(shù)傳遞方式判別方法
判斷參數(shù)傳遞方式,不能單純的看過(guò)程定義中形參前的修飾限定詞有無(wú)ByVal。參數(shù)傳遞到底采用何種方式,不僅取決于過(guò)程定義,還取決于過(guò)程調(diào)用,即與對(duì)應(yīng)實(shí)參的具體形式也有很大關(guān)系。因此,應(yīng)該從以下三個(gè)方面綜合考慮:
1. 形參是否為數(shù)組或者控件
2. 形參前是否有ByVal修飾
3. 對(duì)應(yīng)實(shí)參是否為表達(dá)式或者值
具體判別方法,請(qǐng)見(jiàn)如下判別流程圖。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |