Määritelmä
Formalparameter:PointoutthevariablenameandarraynameintheformalparametertableoftheSubandFunctionprocedures.Beforetheprocedureiscalled,thereisnoTheyallocatememory,andtheirroleistoexplainthetypeandshapeoftheindependentvariableandtheroleintheprocess.Theformalparametercanbealegalvariablenameotherthanafixed-lengthstringvariable,oranarraynamewithparentheses.
Actualparameter:TheactualparameteristheparametervaluepassedfromthecallingproceduretothecalledprocedurewhentheSubandFunctionproceduresarecalled.Theactualparameterscanbevariablenames,arraynames,constants,orexpressions.Whenpassingparametersinaprocedurecall,theactualparametersoftheformalparticipationarecombinedbyposition.Thecorrespondingvariablenamesintheformalparameterlistandtheactualparameterlistdonotneedtobethesame,buttheirdatatypes,numberofparameters,andpositionsmustcorrespondone-to-one.
Relationshipbetweenthetwo:
1.Formalparameterscanonlybevariables,andactualparameterscanbeconstants,variablesorexpressions.Inthefunctionbeingdefined,thetypeoftheformalparametermustbespecified.
2.Thenumberofactualparametersshouldbethesame,andthetypesshouldbethesame.Charactertypeandintegertypecanbeusedinterchangeably.
3.Whencallingafunction,iftheactualparameterisanarrayname,thefirstaddressofthearrayispassedtotheformalparameter
4.TheactualparameterispassedtotheformalparameterinonedirectionPass,theformalparametervariabledoesnotoccupymemorywhenthereisnofunctioncall,onlywhenitiscalled.Afterthecallisover,thememorywillbereleased.Whenexecutingacalledfunction,ifthevalueoftheformalparameterchanges,itwillnotchangethevalueoftheactualparameterinthecallingfunction.
5.Theformalparametersarelikethesymbolsintheformula,andtheactualparametersarethespecificvaluesofthesymbols,whichmustbeassignedbeforethecallingprocess;thecallingprocessistorealizethecombinationoftheformalparticipationintheactualparametersandpassthevalueoftheactualparameterThecallispassedtotheformalparameter,whichisequivalenttosubstitutingthevalueintotheformulaforcalculation.
Menetelmä
Parametrien välittäminen arvon mukaan
Whenpassingparametersbyvalue,theactualparameterThevalueofthevariableiscopiedtothetemporarystorageunit.Ifthevalueoftheformalparameterischangedduringthecall,theactualparametervariableitselfwillnotbeaffected,thatis,theactualparametervariableremainsunchangedatthevaluebeforethecall.Whenpassingparametersbyvalue,youneedtoaddthe"ByVal"keywordbeforetheparametername.
Parametrien ohittaminen osoitteen perusteella
Whenpassingparametersbyaddress,theaddressoftheactualparametervariableistransferredtothecalledprocess,andtheformalandactualparameterssharememoryThesameaddress.Intheprocessofbeingcalled,oncethevalueoftheformalparameterchanges,thevalueofthecorrespondingactualparameteralsochanges.Iftheactualparameterisaconstantorexpression,VisualBasic6.0willdealwithitinthe"passbyvalue"mode,andthe"ByVal"keywordisnotrequiredtopassbyaddress.
Pressarraytopassparameters
InVB6.0,itisallowedtousearraysasactualparameterstopasstothesub-procedureformIntheparameter,thearraypassmustusetheaddresspasstopasstheparameters.Whenpassingarrayparameters,youshouldpayattentiontothefollowingtwoaspects:
①Writeonlythearraynameintheactualparameterandformalparameterlist,ignoringthedefinitionofdimension,buttheparenthesescannotbeomitted,whenthearrayispassedasaparameterAtthetime,thesystempassesthestartingaddressoftherealparametergrouptotheprocess,sothattheshapeparametergroupalsohasthesamestartingaddressastherealparametergroup.Iftheparameterisamulti-dimensionalarray,eachdimensionisseparatedbyacomma;
②Todellisen parametriryhmän ala- ja yläraja voidaan määrittääLboundandUbound-funktiollaheadjusted-prosessissa.
Kutsutoiminto parametreilla
Whencallingafunction,youcanpassvaluestoit.Thesevaluesarecalledparameters.
Näitä parametreja voidaan käyttää toiminnoissa.
Voit lähettää niin monta parametria kuin haluat, pilkuilla (,) erotettuina:
myFunction(argument1,argument2)
Whenyoudeclareafunction,pleasedeclaretheparameterasavariable:
functionmyFunction(muuttuja1,muuttuja2){tässäsuoritettava koodi}
variableTheandparametersmustappearinthesameorder.Thefirstvariableisthegivenvalueofthefirstparameterpassed,andsoon.
Esimerkki
Forthefollowingprogram,trytoanalyzetheresultsobtainedwhenpassingparametersbypassingvalues,passingaddresses,andpassingarraysTheprintresult.
OHJELMAT(tulo,lähtö);
VAR
A,B: kokonaisluku;
PROCEDUREP(x,y,z:kokonaisluku);
beginy:=y+1;z:=z+x;
loppu;
ALKAA
A:=2;b:=3;
P(A+B,A,A);
writeln('A=',A);
LOPPU
Vastaus
(1)Passvalue:Calculatethevalueoftheactualparameterandpassittotheformalparameter.
Proseduuria P kutsuttaessa muotoparametrix=5;y=2;z=2
Proseduuria P kutsuttaessa muotoparametrix=5;y=3;z=7
Thisdoesnotsendtheresultbacktothemainprogram,sotheresultisA=2
(2)Transferaddress:theactualparametercalculatestheresult,Sendtheaddresstotheformalparameter.
AsetamuuttujaT=A+B(tulos5). Kun suoritat, lähetäT,A,jaA(setasaddr1,addr2,addr2)muodollisiin parametreihin:
x=daar1,y=addr2,z=addr2.
T'saddressaddr1isx→T(5)
A'saddressaddr2isy→A(2)
A'saddressaddr2isz→A(2)
SuoritusprosessiPis:①y↑:=y↑+1;②z↑:=z↑+x↑
Joten ①isA:=A+1=3
②isA:=A+T=8.Siksi, lopussaA=8.
(3)passingarray:equivalenttoexecutingA:=2;B:=3;A:=A+1;A:=A+(A+B)
writeln('A=',A);
Joten tulosA = 9.