Parametrien välitys

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

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.

Related Articles
TOP