




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VB過(guò)程(函數(shù))之間的參數(shù)傳遞焦作市職業(yè)技術(shù)學(xué)校2013級(jí)計(jì)算機(jī)一班一、一、形式參數(shù)與實(shí)際參數(shù)形式參數(shù)與實(shí)際參數(shù) o1 形式參數(shù):就是在定義函數(shù)或過(guò)程的時(shí)候命名的參數(shù)。通俗講就是一個(gè)記號(hào)。o2 實(shí)際參數(shù):就是在執(zhí)行時(shí),調(diào)用函數(shù)或過(guò)程時(shí),傳遞給函數(shù)或過(guò)程的參數(shù)。通俗講就是實(shí)際值。o3 參數(shù)嘛,就是一個(gè)可變量,它隨著使用者的不同而發(fā)生變化。舉個(gè)例子,在中學(xué)的時(shí)候?qū)W過(guò)sin(x)函數(shù),這里的x就是形式參數(shù),當(dāng)你需要求1的正弦值時(shí),你會(huì)使用sin(1),這里的1就是實(shí)際參數(shù)。o4 形參和實(shí)參間的關(guān)系:兩者是在調(diào)用的時(shí)候進(jìn)行結(jié)合的,通常實(shí)參會(huì)將取值傳遞給形參,形參去之后進(jìn)行函數(shù)過(guò)程運(yùn)算,然后可能將某些值
2、經(jīng)過(guò)參數(shù)或函數(shù)符號(hào)返回給調(diào)用者。 注意 在過(guò)程之間傳遞參數(shù),形式參數(shù)和實(shí)際參數(shù)是很重要的概念。我們通常說(shuō)形式參數(shù)是過(guò)程為了運(yùn)行的需要預(yù)先在內(nèi)存中保留的地址單元,而實(shí)際參數(shù)就是在調(diào)用過(guò)程時(shí)放入這些內(nèi)存地址中進(jìn)行處理的數(shù)據(jù)。如果形式參數(shù)是一個(gè)盒子,那么實(shí)際參數(shù)就是盒子里面裝的東西。在參數(shù)傳遞的過(guò)程中,形式參數(shù)和實(shí)際參數(shù)的數(shù)據(jù)類(lèi)型要一致。二、參數(shù)傳遞二、參數(shù)傳遞 o函數(shù)參數(shù)的傳遞方式有兩種,一種是按地址傳遞,一種是按值傳遞。o按地址傳遞:按地址傳遞:調(diào)用函數(shù)時(shí),不直接把實(shí)參的值“告訴”函數(shù),而是把地址“告訴”它,函數(shù)根據(jù)這個(gè)地址來(lái)尋找并處理值,如果函數(shù)修改了這個(gè)值,也就修改了這個(gè)地址對(duì)應(yīng)的值。o按值
3、傳遞:按值傳遞:把值復(fù)制一份再給函數(shù),這個(gè)值只屬于函數(shù),函數(shù)對(duì)這個(gè)值的修改不影響原值。oVB中,要按地址傳遞可在形參前加中,要按地址傳遞可在形參前加ByRef,要按,要按值傳遞得在形參前加值傳遞得在形參前加ByVal,如果什么也不加則,如果什么也不加則表示按地址傳遞。表示按地址傳遞。 1) 按值傳遞按值傳遞 o如果在聲明過(guò)程時(shí),形式參數(shù)名前面加上關(guān)鍵字“ByVal”,即規(guī)定了在調(diào)用此過(guò)程時(shí)該參數(shù)是按值傳遞的。按值傳遞參數(shù)時(shí),傳遞的只是變量的副本。如果過(guò)程改變了這個(gè)值,則所做的改動(dòng)只影響副本而不會(huì)影響變量本身。o代碼1o*oPrivate Sub Command1_Click()o Dim nu
4、m1 As Integero num1 = 5o Print num1o Call MySub(num1)oPrint num1 輸出結(jié)果為5o o Call MySub2(num1)oPrint num1 輸出結(jié)果仍為5oEnd Subo oPrivate Sub MySub(ByVal A As Integer)o A = 10oEnd Subo oPrivate Sub MySub2(ByVal A As String)o A = abcoEnd Subo* 如果過(guò)程中的形式參數(shù)設(shè)定為按值傳遞,就不要求調(diào)用時(shí)相應(yīng)實(shí)參數(shù)的類(lèi)型必須與其一致,只要實(shí)參數(shù)的值能夠轉(zhuǎn)換為形參的類(lèi)型即可。 o代碼2
5、o*oPrivate Sub Command1_Click()o Dim num1 As Integero num1 = 5o Print num1o Call MySub2(num1)oPrint num1 輸出結(jié)果仍為5oEnd Subo Private Sub MySub2(ByVal A As String)o A = abcoEnd Subo* 2)按地址傳遞參數(shù)按地址傳遞參數(shù) o按地址傳遞參數(shù)時(shí),過(guò)程用變量的內(nèi)存地址去訪問(wèn)實(shí)際變量的內(nèi)容,將結(jié)果的變量傳遞給過(guò)程時(shí),通用過(guò)程可永遠(yuǎn)改變?cè)撟兞恐怠yRef 是 Visual Basic 的缺省選項(xiàng)。o如果指定按地址傳遞參數(shù)的數(shù)據(jù)類(lèi)型,就
6、必須將這種類(lèi)型的值傳給參數(shù),即如果過(guò)程中的形式參數(shù)設(shè)定為按地址傳遞,就必須要求調(diào)用時(shí)相應(yīng)實(shí)參數(shù)的類(lèi)型必須與其一致。o按地址傳遞參數(shù)時(shí),傳遞給所調(diào)用過(guò)程的形參實(shí)際是實(shí)參的地址。如果過(guò)程改變了這個(gè)值,則所做的變動(dòng)也會(huì)影響實(shí)參變量本身。 o代碼3o*oPrivate Sub Command1_Click()o Dim num1 As Integero num1 = 5o Print num1o Call MySubByRef(num1)o Print num1 輸出結(jié)果為10o Call MySubByRef2(num1)o Print num1 默認(rèn)情況,輸出結(jié)果仍為10o End Subo Pr
7、ivate Sub MySubByRef(ByRef A As Integer)o A = 10oEnd Subo Private Sub MySubByRef2(A As Integer)o A = 10oEnd Subo* 3) 二者比較二者比較oByVal 傳送參數(shù)內(nèi)存的一個(gè)拷貝給被調(diào)用者。也就是說(shuō),棧中壓入的直接就是所傳的值。ByRef 傳送參數(shù)內(nèi)存的實(shí)際地址給被調(diào)用者。也就是說(shuō),棧中壓入的是實(shí)際內(nèi)容的地址。被調(diào)用者可以直接更改該地址中的內(nèi)容。ByVal 可選的。表示該參數(shù)按值傳遞。ByRef 表示該參數(shù)按地址傳遞。 ByRef 是 Visual Basic 的缺省選項(xiàng)。ByVal是傳
8、遞值,源數(shù)據(jù)不會(huì)被修改。你可以把這個(gè)值當(dāng)作自己的局部變量來(lái)使用ByRef是傳遞地址,源數(shù)據(jù)可能被修改。你對(duì)這個(gè)變量的操作將對(duì)你傳入的那個(gè)變量產(chǎn)生影響,就像指針的感覺(jué)。 4)參數(shù)傳遞中的特殊情況參數(shù)傳遞中的特殊情況o下面演示了實(shí)參變量通過(guò)加上一個(gè)額外的小括號(hào)來(lái)強(qiáng)制其以單個(gè)變量為實(shí)參進(jìn)行按值傳遞,在這里默認(rèn)的byRef已經(jīng)失效。o代碼4o*oPrivate Sub Command1_Click()o Dim num1 As Integero num1 = 5o Print num1o Call MySubByRef2 (num1)o Print num1oEnd SuboPrivate Sub MySubByRef2 (A As Integer)o A = 10oEnd Subo*5)幾點(diǎn)說(shuō)明幾點(diǎn)說(shuō)明實(shí)際上,如果在過(guò)程中不改變形參的值,無(wú)論是按值還是按地址傳遞,結(jié)果都是一樣的。對(duì)于一般過(guò)程來(lái)講,參數(shù)的主要目的是設(shè)定一個(gè)條件,所以形參往往只是用來(lái)參與計(jì)算或給其他變量賦值,其本身的值不會(huì)發(fā)生改變。在過(guò)程中,對(duì)按值傳遞形參變量的值改變不會(huì)導(dǎo)致對(duì)應(yīng)實(shí)參變量的改變,而按地址傳
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年資金流動(dòng)性管理試題及答案
- 優(yōu)化備考策略的試題及答案市政工程
- 備考指南水利水電工程考試試題及答案
- 水利水電行業(yè)問(wèn)答試題及答案
- 行政管理信息系統(tǒng)試題及答案
- 機(jī)場(chǎng)油庫(kù)工程可行性研究報(bào)告(參考模板)
- 現(xiàn)代管理學(xué)的歷史與發(fā)展試題及答案
- 團(tuán)隊(duì)心理學(xué)對(duì)管理的影響試題及答案
- 工程項(xiàng)目變更控制試題及答案梳理
- 瀘州2025年瀘州市江陽(yáng)區(qū)事業(yè)單位考核招聘高層次人才筆試歷年參考題庫(kù)附帶答案詳解
- CDN加速服務(wù)合同(2024年版)
- 韓愈課件身世經(jīng)歷
- 《中國(guó)的民主政治》課件
- 部隊(duì)安全保密教育課件
- 2024年10月自考00152組織行為學(xué)試題及答案
- 心血管內(nèi)科降低患者橈動(dòng)脈止血器壓迫不適發(fā)生率品管圈PDCA成果匯報(bào)書(shū)
- 《研學(xué)旅行課程設(shè)計(jì)》研學(xué)旅行課程案例展示 題庫(kù)
- 人音版音樂(lè)七年級(jí)上冊(cè)《在希望的田野上》課件
- 初中班會(huì) 班主任工作經(jīng)驗(yàn)交流 《教育是一場(chǎng)美麗的遇見(jiàn)》 課
- 基于STM32單片機(jī)的智能樓宇控制系統(tǒng)設(shè)計(jì)
- 第二單元《踐行職業(yè)道德》測(cè)試卷-高二思想政治課《職業(yè)道德與法治》附答案
評(píng)論
0/150
提交評(píng)論