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.