Преношење параметара

Дефиниција

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,andtheactualparametersarethespecificvalues​​ofthesymbols,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,youcanpassvalues​​toit.Thesevalues​​arecalledparameters.

Ови параметри се могу користити у функцијама.

Можете послати много параметара које желите, одвојене зарезима(,):

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.

Related Articles
TOP