DOUG LLOYD: Wrth i chi ddechrau gweithio gyda swyddogaethau,
beth arall yn mynd i ddod yn bwysig iawn i ddeall,
sef y cysyniad o gwmpas amrywiol.
Felly cwmpas yn nodweddiadol o newidyn
sy'n diffinio o ba swyddogaethau Gellir gweld y newidyn.
>> Mae dau scopes gynradd yn C, newidynnau lleol a newidynnau byd-eang.
Yn awr, gall newidynnau lleol yn unig cael mynediad o fewn y swyddogaethau
lle y maent yn ei greu.
Ni gellir cael mynediad atynt gan bob eraill swyddogaeth sy'n bodoli yn eich rhaglen,
Dim ond y swyddogaeth yn y cafodd ei greu.
Newidynnau byd-eang, ar y llaw arall, gellir cael mynediad
gan unrhyw swyddogaeth yn y rhaglen.
A'r rheswm am hynny yw oherwydd nad ydynt yn creu y tu mewn
unrhyw swyddogaeth benodol.
Rydym yn eu datgan y tu allan i holl swyddogaethau, a oedd yn
yn golygu bod pob swyddogaeth yn gwybod lle y mae ac yn gallu cael mynediad a thrin ei.
>> Hyd yn hyn yn y cwrs rydych chi wedi 'n bert llawer wedi bod yn gweithio yn unig
gyda newidynnau lleol.
Dyma enghraifft o iawn, iawn Prif swyddogaeth syml ac yn syml iawn
swyddogaeth ychwanegol yr ydym wedi ysgrifennu.
Yn yr achos hwn, x, a oedd yn Rwyf wedi lliw gwyrdd yn unig
i dynnu sylw at yr ardal leol neu cwmpas y newidyn,
yn lleol i'r swyddogaeth driphlyg.
Ni all prif gyfeirio at x o gwbl.
Nid yw'n gwybod beth ydyw.
Nid oes unrhyw swyddogaeth arall, mewn gwirionedd, os ydym Roedd swyddogaethau ychwanegol mewn yma,
Gallai gyfeirio at x.
>> Yn yr un modd, mae canlyniadau yr wyf i wedi lliwio'n las, yn lleol yn unig i'r prif.
Dim ond prif yn gwybod beth y canlyniad yw newidyn.
Ni all triphlyg ddefnyddio.
>> Nawr fel y soniais, newidynnau byd-eang yn bodoli.
Os byddwch yn datgan bod newidyn y tu allan i unrhyw swyddogaeth,
pob un o'r swyddogaethau yn y Gall rhaglen gyfeirio ato.
Felly, yn yr achos hwn rwyf wedi hamlygu yn gwyrdd datganiad newidyn byd-eang.
Yn yr achos hwn, mae'r newidyn sy'n cael ei ddatgan
gelwir byd-eang, dim ond i fod yn hynod glir am y peth.
Mae'n y math arnofio.
Ac yr wyf yn aseinio ei werth 0.5050.
>> Byddwch yn sylwi bod yn y prif ac yn triphlyg, yr wyf yn gallu cyfeirio at fyd-eang.
Ac yn wir, os byddaf yn mynd drwy'r rhaglen fel y nodwyd, prif alwadau cyntaf triphlyg,
lluosi triphlyg byd-eang o 3, a oedd yn yn gosod ei werth i 1.5-rhywbeth,
1.51 neu rywbeth fel 'na, ac Yna prif hefyd yn argraffu allan y gwerth
o fyd-eang.
Felly, ni fydd prif argraffu 0.5050, mae'n Bydd argraffu amseroedd byd-eang 3, 1.51.
Felly, mae'n rhaid i chi fod yn ofalus wrth eich bod yn gweithio gyda newidynnau byd-eang.
Er eu bod yn hyblyg iawn mewn y gallu i drosglwyddo gwybodaeth
o gwmpas er mwyn i bob Gall swyddogaeth ddefnyddio,
gall hefyd gael rhywfaint o canlyniadau peryglus
os yw newidiadau un swyddogaeth gwerth newidyn
cyn i chi yn disgwyl iddo gael ei newid.
>> Pam mae gwahaniaeth hwn yn bwysig?
Pam rydym yn poeni a yw rhai newidynnau yn lleol ac eraill yn fyd-eang?
Wel, ar y cyfan, newidynnau lleol yn C yn yr hyn a elwir basio gan werth
pan fyddwn yn gwneud swyddogaeth galwadau.
Beth yw ystyr hynny?
>> Wel, pan newidyn ei basio yn ôl gwerth, mae'r callee, a oedd yn
yn ffordd arall o ddweud y swyddogaeth hynny yw derbyn y newidyn sy'n
yn cael ei basio yn fel mewnbwn, mae'n mewn gwirionedd nid yw'n derbyn bod newidyn ei hun.
Mae'n derbyn ei ben ei hun copi ohono i weithio gyda nhw.
Mae hwn yn wahaniaeth pwysig iawn.
Rydym yn unig yn gweld eiliad yn ôl hynny gyda newidynnau byd-eang,
os byddwn yn trin y byd-eang amrywiol mewn un swyddogaeth, yr effaith
yn yr un swyddogaeth yn cario drwodd i bob swyddogaeth arall.
>> Ond gyda newidynnau lleol, nid yw hynny'n wir.
Mae pob swyddogaeth pan fydd yn yn derbyn newidynnau fel mewnbwn
cael copïau o newidynnau hynny, nid oedd y newidynnau eu hunain.
Felly beth yw'r sgîl-effaith o hynny?
Mae hynny'n golygu bod y newidyn yn y sawl sy'n galw, y swyddogaeth sydd
yn gwneud y swyddogaeth alwad, yw heb ei newid oni bai eich bod yn drech iddo.
>> Er enghraifft, yn y cod hwn Nid yw foo cael ei newid o gwbl.
Int foo hafal 4, ffoniwch deires o foo, y tu mewn o deires,
byddem yn disgwyl y byddai hynny foo gael ei lluosi â 3 a ddychwelwyd,
ond nid mewn gwirionedd unrhyw effaith.
>> Yma, fodd bynnag, mae gwahaniaeth cynnil iawn.
Mae hyn yn cael yr effaith yr ydym ei eisiau.
A ydych yn gweld pam?
Rydym yn gor-redol foo ym mhrif y tro hwn.
>> Felly foo int hafal 4, foo hafal foo triphlyg, pan fyddwn yn gwneud yr alwad,
triphlyg yn cael ei gopi ei hun o foo, ei gopi ei hun o 4.
Mae'n dweud yn dychwelyd 4 gwaith 3, neu beth bynnag newidyn cael ei drosglwyddo yn y cyfnod 3.
Ac yna rydym yn aseinio y ffurflen gwerth triphlyg i foo eto.
Felly, mae hyn mewn gwirionedd byddai trosysgrifo foo.
Dyma'r unig ffordd o wneud hyn gyda newidyn lleol.
Felly nawr os byddwn yn ychwanegu un arall llinell o god yma
ar ddiwedd y brif i argraffwch gwerth foo,
byddai mewn gwirionedd yn argraffu'r 12.
>> Cwmpas Amrywiol yn gyffredinol dim gormod o broblem
os ydych yn enwi eich holl newidynnau gwahanol bethau.
Ond gall gael math o cas os bydd yr un enw newidyn
yn ymddangos mewn swyddogaethau lluosog, a fydd yn digwydd llawer.
Os ydych chi erioed yn gweithio yn y byd go iawn lle
ydych yn gweithio ar y cyd rhaglenni a phobl mewn gwahanol dimau
yn gweithio gyda'i gilydd i ysgrifennu yr un fath rhaglen neu yr un set o raglenni,
byddant yn aml yn ailddefnyddio newidyn enwau, rhai yn arbennig o gyffredin
fel x, y, i, j, ac yn y blaen.
>> Ond pan newidynnau yn cael un enw, materion cwmpas
yn gallu cael ychydig yn anoddach gramadegu.
Er enghraifft, ydych chi'n gwybod beth fyddai'n eu hargraffu
ar ddiwedd y rhaglen benodol?
Cymerwch funud.
Oedi y fideo a darllen drwy'r rhaglen hon.
Gallwch weld yn y top i ni gael datganiad swyddogaeth
i swyddogaeth o'r enw gynyddiad.
Swyddogaeth honno yn cymryd sengl paramedr, yn gyfanrif yr ydym yn galw x.
Ac mae'n allbynnau yn gyfanrif.
Dyna'r math dychwelyd ar y dechrau.
>> Yna, mae gennym brif, un neu ddau o linellau o god yn y prif, yr olaf o'r rhain
yn ddatganiad print.
A chofiwch, dyna'r cwestiwn yma.
Beth yw mewn gwirionedd yn mynd i fod hargraffu ar ddiwedd y swyddogaeth hon?
Ac yna rydym mewn gwirionedd yn cael y diffiniad o cynyddiad isod.
>> Felly gymryd munud, cam drwy y cod, olrhain pethau allan.
Ydych chi'n gwybod beth fydd yn cael ei argraffu ar diwedd y rhaglen benodol?
>> Iawn.
Gobeithio, rydych chi wedi cymryd ychydig eiliadau i geisio gramadegu hwn allan.
Gadewch i ni ei wneud gyda'n gilydd.
>> Felly dwi wedi croesi allan cynyddiad yn datganiad ar y brig yno.
Roedd yn fath o tynnu sylw.
Dyw hi ddim yn ei newidyn ei hun.
Nid oes ganddo ei gwmpas ei hun.
Mae'n dim ond swyddogaeth datganiad, felly ar gyfer dibenion
o geisio dosrannu gwybod beth sydd ar sy'n digwydd yn y rhaglen hon,
rydym Efallai yn ogystal dim ond osgoi.
>> Nawr mae gennym yn yr achos hwn, mae'r rheswm y broblem hon yn ddyrys
yw oherwydd bod gennym newidynnau lleol mewn y ddau brif a cynyddiad, pob un ohonynt
yw enw x.
Ac wrth gwrs craidd y mater hwn ceisio Suss pa x yn cael ei newid
a sut mae'n cael ei newid.
Felly dwi wedi lliw mhob achos o x sy'n lleol i'r prif coch.
Ac yr wyf i wedi lliw pob achos o x mae hynny'n lleol i gynyddiad glas.
>> Rhybudd yn y drydedd linell o brif, y yn hafal i cynyddiad
x, nad yw cynyddiad yn cael ei pasio prif yn x, neu'r x goch.
Mae'n cael ei basio copi ohono.
Ac mae'n dim ond yn mynd i weithio gyda bod copi ohono, mae'r x glas.
Os ydych yn fathemategol oleddf, efallai y byddwch
yn lle hynny wedi meddwl am hyn fel x is metr ar gyfer prif ac is-x ff am cynyddiad.
Ond mae'n yr un syniad.
x is m, neu'r x yn goch yn y sleid blaenorol,
yw'r newidynnau sy'n cael eu local-- yn y lle o x yn hytrach hynny
yn lleol i'r prif, a x is i, neu'r newidynnau glas yn y sleid blaenorol,
yw'r enghreifftiau o x sy'n yn lleol i gynyddiad.
>> Felly, a gawsoch chi ei chyfrif i maes beth swyddogaeth hon wedi'i argraffu ar y diwedd?
Rwy'n Doug Lloyd, ac mae hyn yn CS50.