Дефиниција
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.
Метод
Пассингпараметерсбивалуе
Whenpassingparametersbyvalue,theactualparameterThevalueofthevariableiscopiedtothetemporarystorageunit.Ifthevalueoftheformalparameterischangedduringthecall,theactualparametervariableitselfwillnotbeaffected,thatis,theactualparametervariableremainsunchangedatthevaluebeforethecall.Whenpassingparametersbyvalue,youneedtoaddthe"ByVal"keywordbeforetheparametername.
Пассингпараметерсбиаддресс
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;
②Доња и горња граница реалне групе параметара могу се одредити кроз функције ЛбоундандУбоунд у главном процесу.
Цаллафунцтионвитхпараметерс
Whencallingafunction,youcanpassvaluestoit.Thesevaluesarecalledparameters.
Ови параметри се могу користити у функцијама.
Можете послати много параметара које желите, одвојене зарезима(,):
myFunction(argument1,argument2)
Whenyoudeclareafunction,pleasedeclaretheparameterasavariable:
фунцтионмиФунцтион(вар1,вар2){овде код треба да се изврши}
variableTheandparametersmustappearinthesameorder.Thefirstvariableisthegivenvalueofthefirstparameterpassed,andsoon.
Пример
Forthefollowingprogram,trytoanalyzetheresultsobtainedwhenpassingparametersbypassingvalues,passingaddresses,andpassingarraysTheprintresult.
ПРОГРАМИ(улаз,излаз);
ВАР
А,Б:цео број;
ПРОЦЕДУРЕП(к,и,з:цео број);
бегини:=и+1;з:=з+к;
крај;
ЗАПОЧЕТИ
А:=2;б:=3;
П(А+Б,А,А);
врителн('А=',А);
КРАЈ
Одговор
(1)Passvalue:Calculatethevalueoftheactualparameterandpassittotheformalparameter.
Приликом позивања процедуре П, формални параметар к=5;и=2;з=2
Приликом позивања процедуре П, формални параметар к=5;и=3;з=7
Thisdoesnotsendtheresultbacktothemainprogram,sotheresultisA=2
(2)Transferaddress:theactualparametercalculatestheresult,Sendtheaddresstotheformalparameter.
СетвариаблеТ=А+Б(ресултис5). Приликом извршавања, пошаљите хеаддрессес офТ,А,андА(сетасаддр1,аддр2,аддр2)на формалне параметре:
к=даар1,и=аддр2,з=аддр2.
Т'аддрессаддр1иск→Т(5)
А'аддрессаддр2иси→А(2)
А'аддрессаддр2исз→А(2)
ТхеекецутионпроцессПис:①и↑:=и↑+1;②з↑:=з↑+к↑
Дакле, ① је А:=А+1=3
②јеА:=А+Т=8. Дакле, на крају А=8.
(3)passingarray:equivalenttoexecutingA:=2;B:=3;A:=A+1;A:=A+(A+B)
врителн('А=',А);
Дакле, резултат је А=9.