డౌ LLOYD: మీరు ప్రారంభం నాటికి విధులు పని,
మరొక విషయం మారింది అన్నారు అర్థం నిజంగా ముఖ్యమైన,
వేరియబుల్ స్కోప్ భావన.
కాబట్టి పరిధిని ఒక ఒక వేరియబుల్ యొక్క లక్షణం
దీనిలో ఆ విధులు నుండి నిర్వచిస్తుంది ఆ వేరియబుల్ ప్రాప్తి చేయవచ్చు.
>> సి లో రెండు ప్రాథమిక స్కోప్స్ ఉన్నాయి, స్థానిక వేరియబుల్స్ మరియు ప్రపంచ వేరియబుల్స్.
ఇప్పుడు, స్థానిక వేరియబుల్స్ మాత్రమే విధులు లోపల ప్రాప్తి
దీనిలో వారు సృష్టించిన చేస్తున్నారు.
వారు ప్రతి ఇతర ద్వారా ప్రాప్తి చేయబడదు మీ కార్యక్రమంలో ఉందని ఫంక్షన్,
లో మాత్రమే ఫంక్షన్ ఇది రూపొందించారు.
గ్లోబల్ వేరియబుల్స్, మరోవైపు, ప్రాప్తి చేయవచ్చు
ప్రోగ్రామ్ లో ఏ చర్య ద్వారా.
మరియు ఆ కారణం ఉంది వారు లోపల సృష్టించలేదు ఉన్నందున
ఏ ప్రత్యేక ఫంక్షన్.
మేము బయట వారిని డిక్లేర్ ఫంక్షన్లను ఇవన్నీ
ప్రతి ఫంక్షన్ పేరు తెలుసని అర్థం ఇది మరియు యాక్సెస్ మరియు సర్దుబాటు చేయవచ్చు.
>> ఇప్పటివరకు కోర్సులో మీరు అందంగా చేసిన చాలా ప్రత్యేకంగా పని
స్థానిక వేరియబుల్స్ తో.
ఇక్కడ ఒక యొక్క ఒక ఉదాహరణ చాలా వార్తలు సాధారణ ప్రధాన విధి మరియు చాలా సులభమైన
మేము వ్రాయలేదు అదనపు ఫంక్షన్.
ఈ సందర్భంలో, x ఇది నేను ఆకుపచ్చ రంగు చేసిన
Locality హైలైట్ లేదా ఆ వేరియబుల్ యొక్క పరిధిని,
ట్రిపుల్ ఫంక్షన్ స్థానిక ఉంది.
ప్రధాన అన్ని వద్ద x సూచించడానికి కాదు.
ఇది ఇంతే తెలీదు.
ఏ ఇతర ఫంక్షన్, నిజానికి, మనం ఉంటే ఇక్కడ అదనపు విధులు కలిగి
x సూచించడానికి కాలేదు.
>> అదేవిధంగా, నేను చేసిన పొందవచ్చు నీలం రంగు మాత్రమే ప్రధాన స్థానిక.
కేవలం ప్రధాన తెలుస్తుందని వేరియబుల్ ఫలితం.
ట్రిపుల్ ఉపయోగించలేరు.
>> ఇప్పుడు నేను చెప్పినట్లుగా, ప్రపంచ వేరియబుల్స్ ఉన్నాయి.
మీరు ఆ వేరియబుల్ డిక్లేర్ ఉంటే ఏ విధి వెలుపల
విధులు అన్ని కార్యక్రమం ఇది సూచించవచ్చు.
కాబట్టి ఈ విషయంలో నేను హైలైట్ చేసిన ప్రపంచ వేరియబుల్ ప్రకటన ఆకుపచ్చ.
ఈ సందర్భంలో, వేరియబుల్ ఉండటం ప్రకటించింది
కేవలం వరకు ప్రపంచ అంటారు దాని గురించి చాలా స్పష్టమైన ఉండాలి.
టైపు ఫ్లోట్ ఉంది.
మరియు నేను దానిని విలువ 0,5050 కేటాయించవచ్చు.
>> మీరు ప్రధాన లో మరియు లో గమనించవచ్చు ట్రిపుల్, నేను ప్రపంచ సూచించడానికి చేయగలుగుతున్నాను.
నిజానికి, నేను కార్యక్రమం ద్వారా వెళ్ళి ఉంటే ప్రధాన మొదటి కాల్స్ ట్రిపుల్ సూచించిన,
3 ప్రపంచ ట్రిపుల్ గుణిస్తారు, ఇది 1.5-ఏదో దాని విలువ అమర్చుతుంది,
1.51 లేదా అలాంటిదే, మరియు అప్పుడు ప్రధాన కూడా విలువ అవుట్ ముద్రిస్తుంది
యొక్క ప్రపంచ.
0,5050 ముద్రించాలా లేదు కాబట్టి ప్రధాన, అది , 1.51 ప్రపంచ సమయాలు 3 ముద్రిస్తుంది.
సో మీరు జాగ్రత్తగా ఉండాలని పొందారు మీరు ప్రపంచ వేరియబుల్స్ తో పని చేస్తున్నాము.
వారు చాలా సరళమైన ఉన్నప్పుడూ సమాచారం పాస్ సామర్థ్యం
చుట్టూ తద్వారా ప్రతి ఫంక్షన్ ఉపయోగించవచ్చు,
అది కూడా కొన్ని కలిగి ప్రమాదకరమైన పరిణామాలు
ఒక ఫంక్షన్ మార్పులు ఉంటే ఒక వేరియబుల్ విలువ
మీరు ఆశించిన ముందు అది మార్చవలసిన.
>> ఎందుకు ఈ వ్యత్యాసం ప్రాధాన్యత ఉందా?
ఎందుకు మేము శ్రద్ధ లేదు కొన్ని వేరియబుల్స్ లేదో స్థానిక మరియు ఇతరులు ప్రపంచ ఉన్నాయి?
Well, చాలా భాగం, స్థానిక వేరియబుల్స్ సి లో విలువ ఆమోదించిన అని ఏమి ఉన్నాయి
మేము ఒక ఫంక్షన్ కాల్ చేస్తే.
ఆ అర్థం ఏమిటి?
>> Well, ఒక వేరియబుల్ పాస్ అయినప్పుడు విలువ, callee ద్వారా ఇది
ఫంక్షన్ చెప్పడం మరొక మార్గం ఆ వేరియబుల్ అందుకుంటున్న
ఒక ఇన్పుట్ వంటి జారీ చేస్తారు, ఇది నిజానికి ఆ వేరియబుల్ కూడా లభించదు.
ఇది దాని సొంత అందుకుంటుంది అది కాపీని తో పని.
ఈ ఒక నిజంగా ముఖ్యమైన వ్యత్యాసం ఉంది.
మేము కేవలం రెండవ క్రితం చూసిన ప్రపంచ వేరియబుల్స్ ఆ
మేము ప్రపంచ మార్చటానికి ఉంటే ఒక ఫంక్షన్ లో వేరియబుల్ ప్రభావం
ఆ ఫంక్షన్ చేరవేస్తుంది ప్రతి ఇతర ఫంక్షన్ ద్వారా.
>> కానీ స్థానిక వేరియబుల్స్ తో, నిజమైన కాదు.
ప్రతి ఫంక్షన్ అది ఇన్పుట్ వంటి వేరియబుల్స్ అందుకుంటుంది
ఆ వేరియబుల్స్ యొక్క కాపీలు అందుకోవడం వేరియబుల్స్ తాము.
కాబట్టి ఆ వైపు ప్రభావం ఏమిటి?
అంటే ఆ వేరియబుల్ కాలర్ ఫంక్షన్
ఫంక్షన్ కాల్ చేయడం ఉంది మారకుండా మీరు భర్తీ తప్ప.
>> ఉదాహరణకు, ఈ కోడ్ లో foo అన్ని వద్ద మారలేదు.
Int foo 4 సమానం, ట్రిపుల్ కాల్ foo యొక్క, ట్రిపుల్ లోపల,
మేము ఆ foo చేస్తాను ఆలోచించే 3 గుణించి మరియు తిరిగి సాధ్యం,
కానీ నిజానికి ఎటువంటి ప్రభావం ఉంది.
>> ఇక్కడ అయితే, చాలా సూక్ష్మ తేడా.
ఈ మేము కావలసిన ప్రభావం కలిగి ఉంది.
మీరు ఎందుకు చూస్తారు?
మేము ప్రధాన ఈ సమయంలో foo భర్తీ చేస్తున్నారు.
>> కాబట్టి Int foo 4, foo సమానం సమానం ట్రిపుల్ foo, మేము ఆ కాల్ చేస్తే,
ట్రిపుల్ దాని స్వంత కాపీని గెట్స్ foo, 4 దాని స్వంత కాపీని.
ఇది సంసార 4 సార్లు 3, లేదా తిరిగి చెప్పారు వేరియబుల్ సార్లు 3 లో వశమైంది.
ఆపై మేము తిరిగి కేటాయించి ట్రిపుల్ విలువ మళ్లీ foo కు.
కాబట్టి ఈ వాస్తవానికి foo తిరిగి రాస్తుంది ఉంటుంది.
దీన్ని ఏకైక మార్గం స్థానిక వేరియబుల్ తో ఈ.
కాబట్టి ఇప్పుడు మేము మరొక జోడిస్తే ఇక్కడ కోడ్ లైన్
ప్రధాన చివర , foo విలువ ముద్రించాలా
నిజానికి 12 ముద్రించాలా చేస్తుంది.
>> వేరియబుల్ స్కోప్ సాధారణంగా ఉంది ఒక సమస్య కాబోదు
మీరు అన్ని పేరు ఉంటే మీ వేరియబుల్స్ వివిధ విషయాలు.
కానీ అది దుష్ట యొక్క రకమైన పొందవచ్చు అదే వేరియబుల్ పేరు ఉంటే
బహుళ విధులను కనిపిస్తుంది, ఇది చాలా జరగవచ్చు.
మీరు ఎప్పుడైనా పని లేకపోతే వాస్తవ ప్రపంచంలో ఎక్కడ
మీరు సహకార కృషి వివిధ జట్లు కార్యక్రమాలు మరియు ప్రజలు
అదే రాయడానికి కలిసి పనిచేస్తున్నారు ప్రోగ్రామ్ లేదా ప్రోగ్రామ్ల ఒకే సెట్
వారు తరచుగా వేరియబుల్ మళ్లీ మళ్లీ చేస్తాము పేర్లు, ప్రత్యేకించి సాధారణ వాటిని
అందువలన న x, y, నేను, J, మరియు ఇష్టపడుతున్నారు.
>> కానీ ఉన్నప్పుడు వేరియబుల్స్ కలిగి ఇదే పేరుతో పరిధిని సమస్యలు
కొద్దిగా trickier అన్వయించడం పొందవచ్చు.
ఉదాహరణకు, మీరు తెలుసు ఏమి ముద్రించిన అవుతుంది
ఈ ప్రత్యేక కార్యక్రమం చివరిలో?
ఒక నిమిషం పడుతుంది.
వీడియో పాజ్ మరియు చదవడానికి ఈ కార్యక్రమం ద్వారా.
మీరు పైన మేము వద్ద చూడగలరు ఒక ఫంక్షన్ ప్రకటన
పెంపు అని ఒక ఫంక్షన్ కోసం.
ఆ ఫంక్షన్ ఒకే పడుతుంది పారామితి, మేము x కాల్ పూర్ణాంకం.
మరియు అది ఒక పూర్ణాంకం అందిస్తుంది.
ఆ ప్రారంభంలో తిరిగి రకం.
>> అప్పుడు మేము రేఖల ప్రధాన, ఒక జంట కలిగి ప్రధాన కోడ్, వీటిలో చివరి
ఒక ప్రింట్ ప్రకటన.
మరియు ఇక్కడ ప్రశ్న, గుర్తుంచుకోవాలి.
ఏమి నిజానికి అవతరిస్తుంది ఈ ఫంక్షన్ ముగింపు వద్ద ముద్రించిన?
ఆపై మేము నిజానికి క్రింద పెంపు నిర్వచనం.
>> సో ద్వారా అడుగు, ఒక నిమిషం పడుతుంది కోడ్ విషయాలను కలిగివున్నారు.
మీరు ప్రింట్ చేయబడుతుంది ఏమి తెలుసా ఈ ప్రత్యేక కార్యక్రమం ముగింపు?
>> అయితే సరే.
ఆశాజనక, మీరు కొన్ని సెకన్ల తీసుకున్నారు ప్రయత్నించండి మరియు ఈ ఒక అన్వయించడం.
యొక్క కలిసి దీన్ని లెట్.
>> కాబట్టి నేను పెంపు యొక్క కొట్టివేసి చేసిన అక్కడ టాప్ వద్ద డిక్లరేషన్.
ఇది పరధ్యానంగా రకంగా ఉండేది.
ఇది దాని సొంత వేరియబుల్ కాదు.
ఇది దాని సొంత పరిధిలో లేదు.
ఇది కేవలం ఒక ఫంక్షన్ ఉంది ప్రకటన కాబట్టి ప్రయోజనాల కోసం
వార్తలు ఏమిటో అన్వయించడం ప్రయత్నిస్తున్నప్పుడు ఈ కార్యక్రమం జరుగుతున్న,
మేము అలాగే కేవలం అది నివారించేందుకు ఉండవచ్చు.
>> ఇప్పుడు మేము ఈ సందర్భంలో, ఈ సమస్య గమ్మత్తైన కారణం
మేము స్థానిక వేరియబుల్స్ కలిగి ఎందుకంటే ప్రధాన మరియు పెంపు, రెండు ప్రతి వీటిలో
అని x.
మరియు కోర్సు యొక్క ఈ సమస్య యొక్క ఆయువుపట్టు ఉంది x మార్చారు కొద్దీ ఇది బయటకు సబ్ ప్రయత్నిస్తున్న
మరియు అది ఎలా మార్చుకోమని లేదు.
నేను ప్రతి ఉదాహరణకు రంగు చేసిన x యొక్క ప్రధాన ఎరుపు స్థానిక వార్తలు.
మరియు నేను ప్రతి ఉదాహరణకు రంగు చేసిన x నీలి పెంచడం స్థానిక వార్తలు.
>> మూడవ లైన్ లో నోటీసు ప్రధాన, y పెంపు సమానం
x, పెంపు ఉండటం లేదు ఉత్తీర్ణత యొక్క ప్రధాన x, లేదా ఎరుపు x.
ఇది దాని కాపీని ఆమోదించింది సంతరించుకోనుంది.
మరియు అది మాత్రమే పని జరగబోతోంది అది ఆ కాపీని, నీలం x.
మీరు గణితశాస్త్ర పోతే వొంపు, మీరు వాటిని
బదులుగా x ఉప ఈ ఆలోచించిన పెంపు కోసం ప్రధాన మరియు x ఉప i కోసం m.
కానీ అదే ఆలోచన.
x ఉప m, లేదా x యొక్క ఎరుపు మునుపటి స్లయిడ్ లో,
local-- అని వేరియబుల్స్ ఉన్నాయి ఆ కాకుండా x యొక్క ఉదాహరణను
ప్రధాన స్థానిక, మరియు x ఉప i, లేదా మునుపటి స్లయిడ్ నీలం వేరియబుల్స్
x యొక్క పర్యాయాలు పెంచడం స్థానిక ఉన్నాయి.
>> కాబట్టి, మీరు దొరుకుతుందని సాధించారు ఏమి చివరిలో ముద్రించిన ఈ ఫంక్షన్?
నేను డౌ లాయిడ్ ఉన్నాను, మరియు ఈ CS50 ఉంది.