>> DAVID J. Malan: Við skulum skrifa forrit í sem við reynum að skipta á gildum
tvær breytur, x og y.
Fyrirfram, hef ég skrifað mikið af þessu forriti þegar.
Fyrst, ég staðfesti breytu, x, og geyma í henni verðmæti, 1.
Þá er ég að lýsa breytu y og geyma í henni verðmæti, 2.
>> Þá vil ég halda áfram með printf að sýna gildin þessum tveimur breytum.
Þá vil ég halda því fram með öðru printf að skipta þeim breytum.
Þá kalla ég fall sem kallast skipti.
Og þá er ég halda því fram að breyturnar hafa verið skipti.
Og þá prenta ég út að það sem ég segist eru nýju gildin á x og y.
>> Nú er það þessi aðgerð skipti?
Það er ekki eitthvað sem kemur með C. Reyndar, ef við lítum efst minn
skrá, youll 'taka eftir að ég hef lýst frumgerð fyrir þessa aðgerð skipti
tilgreina að það tekur tvo ints, geðþótta kallað A og B, og þetta
virka ekki aftur neitt.
Svo væntanlega, er það hvað það segir skiptasamninga a og gildi b er.
Skulum framkvæma nú skipti.
>> Fyrst ætla ég að lýsa tímabundið breytilegir og úthluta henni
gildi í, þó að ég gæti bara eins auðveldlega geymt í honum b.
Ég ætla þá að fara að breyta gildi af a til að vera jöfn að í b.
Og þá loks, ég ætla að breyta gildið b að vera hvað var en er
nú í afleysingamanneskja.
>> Nú ég kröfu sem ég hef bara gert er rökrétt.
Ég hef geymt í tímabundna breytu, breytt úr gildi til að vera,, B, og þá
breytt gildi b er að vera hvað var.
En þegar ég safna saman og keyra þetta program, áhyggjur ég það er ekki
fara það sem ég sé.
>> Gera, engin skipti.
punktur rista, engin skipti.
Og því miður, í samræmi við printf, gildi af X og Y, jafnvel
eftir að við segjast vera að skipta þá er enn 1 og 2.
>> Nú er ástæðan fyrir því?
Jæja, kemur í ljós að í helstu, þegar við kalla þessa aðgerð skipti, sem liggur í
x og y sem rök, það er í raun afrit af x og y sem
eru liðin skiptasamninga.
Nefnilega, eru gildi þeirra 1 og 2 lentu í skipti sem a og b.
Og það er a og b að við erum á endanum skipta í aðal.
>> Það er að segja 1 verður 2, 2 verður 1.
Heldur vegna skipti hefur ekkert skilagildi og vegna þess að það fékk afrit af x
og y, er það hegðun hefur engin áhrif á x og y.
Reyndar, a og b eru scoped, svo að segja, að skipta, en x og y eru
scoped að helstu.
>> Þannig að við höfum vandamál.
En hvernig á að laga það?