1 00:00:00,000 --> 00:00:05,300 2 00:00:05,300 --> 00:00:07,300 Doug LLOYD: Kif tibda ħidma ma 'funzjonijiet, 3 00:00:07,300 --> 00:00:09,966 Ħaġa oħra se ssir verament importanti li wieħed jifhem, 4 00:00:09,966 --> 00:00:12,380 li huwa l-kunċett ta 'ambitu varjabbli. 5 00:00:12,380 --> 00:00:14,490 Allura ambitu huwa karatteristika ta 'varjabbli 6 00:00:14,490 --> 00:00:18,860 li jiddefinixxi Minn liema funzjonijiet dak il-varjabbli jistgħu jiġu aċċessati. 7 00:00:18,860 --> 00:00:24,595 >> Hemm żewġ ambiti ewlenin fis-C, varjabbli lokali u varjabbli globali. 8 00:00:24,595 --> 00:00:27,830 Issa, varjabbli lokali tista 'biss jiġu aċċessati fil-funzjonijiet 9 00:00:27,830 --> 00:00:29,045 fejn dawn qed jinħolqu. 10 00:00:29,045 --> 00:00:32,170 Huma ma jistgħux jiġu aċċessati minn kull oħra funzjoni li jeżisti fil-programm tiegħek, 11 00:00:32,170 --> 00:00:34,184 biss il-funzjoni fil li hija ġiet maħluqa. 12 00:00:34,184 --> 00:00:36,350 Varjabbli globali, fuq il- naħa l-oħra, jistgħu jiġu aċċessati 13 00:00:36,350 --> 00:00:37,719 minn kull funzjoni fil-programm. 14 00:00:37,719 --> 00:00:40,260 U r-raġuni għal dan hi għaliex mhux qed maħluqa fl-intern 15 00:00:40,260 --> 00:00:41,441 ta 'kwalunkwe funzjoni partikolari. 16 00:00:41,441 --> 00:00:43,690 Aħna niddikjaraw minnhom barra tal il-funzjonijiet kollha, li 17 00:00:43,690 --> 00:00:48,940 ifisser li kull funzjoni jaf fejn huwa u tista 'aċċess u timmanipula dan. 18 00:00:48,940 --> 00:00:52,010 >> S'issa fil-kors li inti stajt pretty ħafna ilhom jaħdmu esklussivament 19 00:00:52,010 --> 00:00:54,280 ma 'varjabbli lokali. 20 00:00:54,280 --> 00:00:58,320 Hawn eżempju ta 'ħafna, ħafna funzjoni prinċipali sempliċi u sempliċi ħafna 21 00:00:58,320 --> 00:01:00,680 Funzjoni addizzjonali li konna bil-miktub. 22 00:01:00,680 --> 00:01:03,180 F'dan il-każ, x, li Stajt kkulurita aħdar biss 23 00:01:03,180 --> 00:01:07,400 li tenfasizza l-lokalità jew l-ambitu ta 'dak il-varjabbli, 24 00:01:07,400 --> 00:01:09,240 huwa lokali għall-funzjoni tripla. 25 00:01:09,240 --> 00:01:12,300 prinċipali ma jistax jirreferi għal x-livelli kollha. 26 00:01:12,300 --> 00:01:14,259 Ma tafx x'inhu. 27 00:01:14,259 --> 00:01:17,050 Ebda funzjoni oħra, fil-fatt, jekk irridu kellhom funzjonijiet addizzjonali fil hawn, 28 00:01:17,050 --> 00:01:19,360 tista 'tirreferi għall x. 29 00:01:19,360 --> 00:01:23,520 >> Bl-istess mod, jirriżulta li stajt b'lewn ikħal, huwa lokali biss lill prinċipali. 30 00:01:23,520 --> 00:01:26,980 Biss prinċipali jaf liema ir-riżultat varjabbli huwa. 31 00:01:26,980 --> 00:01:30,010 triple ma tistax tużah. 32 00:01:30,010 --> 00:01:32,580 >> Issa kif semmejt, jeżistu varjabbli globali. 33 00:01:32,580 --> 00:01:35,575 Jekk inti tiddikjara dak il-varjabbli barra ta 'kwalunkwe funzjoni, 34 00:01:35,575 --> 00:01:38,290 il-funzjonijiet kollha fil- programm jista 'jirreferi għaliha. 35 00:01:38,290 --> 00:01:44,010 Allura f'dan il-każ stajt enfasizzat fir aħdar dikjarazzjoni varjabbli globali. 36 00:01:44,010 --> 00:01:45,830 F'dan il-każ, il- benesseri varjabbli ddikjarati 37 00:01:45,830 --> 00:01:48,720 huwa msejjaħ globali, just biex jkun estremament ċara dwar dan. 38 00:01:48,720 --> 00:01:49,720 Huwa ta 'float tip. 39 00:01:49,720 --> 00:01:52,940 U jien tassenja din l-valur 0.5050. 40 00:01:52,940 --> 00:01:58,080 >> Int ser ikollok avviż li fl prinċipali u triple, I am kapaċi li jirreferu għal globali. 41 00:01:58,080 --> 00:02:03,480 U fil-fatt, jekk immur permezz tal-programm kif indikat, l-ewwel sejħiet ewlenin triple, 42 00:02:03,480 --> 00:02:10,440 timmultiplika tripla globali bi 3, li settijiet valur tagħha sa 1.5-xi ħaġa, 43 00:02:10,440 --> 00:02:16,080 1.51 jew xi ħaġa bħal dik, u imbagħad prinċipali prints wkoll il-valur 44 00:02:16,080 --> 00:02:16,620 tal globali. 45 00:02:16,620 --> 00:02:24,424 Allura prinċipali mhux se jistampa 0.5050, huwa se jistampa żminijiet globali 3, 1.51. 46 00:02:24,424 --> 00:02:27,340 Allura inti ħadthom ltqajna biex ikunu attenti meta int taħdem ma 'varjabbli globali. 47 00:02:27,340 --> 00:02:30,260 Waqt li jkunu qed flessibbli ħafna fil jkunu jistgħu jgħaddu informazzjoni 48 00:02:30,260 --> 00:02:32,650 madwar hekk li kull funzjoni tista 'tagħmel użu minnha, 49 00:02:32,650 --> 00:02:34,580 huwa wkoll jista 'jkollha xi konsegwenzi perikolużi 50 00:02:34,580 --> 00:02:38,770 jekk il-bidliet funzjoni waħda il-valur ta 'varjabbli 51 00:02:38,770 --> 00:02:42,360 qabel ma tistenna li jinbidlu. 52 00:02:42,360 --> 00:02:44,200 >> Għaliex ma jimpurtax din id-distinzjoni? 53 00:02:44,200 --> 00:02:48,070 Għalfejn nagħmlu kura jekk xi varjabbli huma lokali u oħrajn huma globali? 54 00:02:48,070 --> 00:02:53,880 Ukoll, għall-parti l-kbira, varjabbli lokali fl C huma dak li sejjaħ għaddiet mill-valur 55 00:02:53,880 --> 00:02:56,087 meta nagħmlu sejħa funzjoni. 56 00:02:56,087 --> 00:02:56,920 Xi tfisser? 57 00:02:56,920 --> 00:03:00,880 >> Ukoll, meta varjabbli tgħaddi mill-valur, l-callee, li 58 00:03:00,880 --> 00:03:04,350 huwa mod ieħor kif tgħid l-funzjoni li qed tirċievi l-varjabbli li 59 00:03:04,350 --> 00:03:08,465 gets għadda fi bhala input, attwalment ma jirċevix din varjabbli innifsu. 60 00:03:08,465 --> 00:03:12,490 Hija tirċievi tagħha stess Kopja ta 'din taħdem magħhom. 61 00:03:12,490 --> 00:03:14,350 Din hija distinzjoni verament importanti. 62 00:03:14,350 --> 00:03:18,250 Aħna biss raw it-tieni ilu li ma varjabbli globali, 63 00:03:18,250 --> 00:03:23,240 jekk aħna jimmanipula l-globali varjabbli fil-funzjoni waħda, l-effett 64 00:03:23,240 --> 00:03:26,390 f'dik il-funzjoni waħda twettaq permezz għal kull funzjoni oħra. 65 00:03:26,390 --> 00:03:28,920 >> Iżda ma 'varjabbli lokali, li mhux veru. 66 00:03:28,920 --> 00:03:32,060 Kull funzjoni meta jirċievi varjabbli bħala input 67 00:03:32,060 --> 00:03:36,367 jirċievu kopji ta 'dawk il-varjabbli, mhux il-varjabbli nfushom. 68 00:03:36,367 --> 00:03:37,825 Allura x'inhi l-effett sekondarju ta 'dak? 69 00:03:37,825 --> 00:03:40,450 Dan ifisser li l-varjabbli fil l-sejjieħ, il-funzjoni li 70 00:03:40,450 --> 00:03:45,600 qed tagħmel is-sejħa funzjoni, huwa mhux mibdula sakemm inti override dan. 71 00:03:45,600 --> 00:03:50,420 >> Per eżempju, f'dan il-kodiċi foo mhux nbidel f'xejn. 72 00:03:50,420 --> 00:03:55,450 Foo int ugwali 4, sejħa triple tal foo, ġewwa ta 'triple, 73 00:03:55,450 --> 00:03:58,850 nistgħu nistennew li foo kieku jiġi mmultiplikat bi 3 u lura, 74 00:03:58,850 --> 00:04:01,450 imma hemm attwalment l-ebda effett. 75 00:04:01,450 --> 00:04:03,460 >> Hawnhekk għalkemm, differenza sottili ħafna. 76 00:04:03,460 --> 00:04:06,520 Dan ma jkollu l-effett li rridu. 77 00:04:06,520 --> 00:04:07,730 Inti tara għaliex? 78 00:04:07,730 --> 00:04:11,500 Aħna qed imperattivi foo fi prinċipali f'dan il-ħin. 79 00:04:11,500 --> 00:04:16,899 >> Allura foo int ugwali 4, foo ugwali foo triplu, meta nagħmlu dik is-sejħa, 80 00:04:16,899 --> 00:04:21,680 triple gets kopja proprja tiegħu tal foo, kopja proprja tiegħu tal-4. 81 00:04:21,680 --> 00:04:27,340 Hija tgħid ritorn 4 darbiet 3, jew kwalunkwe varjabbli gets għadda fi żminijiet 3. 82 00:04:27,340 --> 00:04:32,109 U allura aħna tassenja r-ritorn valur tal tripla għall foo mill-ġdid. 83 00:04:32,109 --> 00:04:33,650 Allura dan fil-fatt ikun jissostitwixxu foo. 84 00:04:33,650 --> 00:04:35,816 Dan huwa l-uniku mod biex isir dan ma varjabbli lokali. 85 00:04:35,816 --> 00:04:38,120 Allura issa jekk aħna żid ieħor linja tal-kodiċi hawn 86 00:04:38,120 --> 00:04:40,870 fl-aħħar tal ewlenija biex jistampa l-valur tal foo, 87 00:04:40,870 --> 00:04:45,030 ikun fil-fatt jistampa 12. 88 00:04:45,030 --> 00:04:48,600 >> Ambitu varjabbli hija ġeneralment mhux wisq ta 'problema 89 00:04:48,600 --> 00:04:51,190 jekk inti isem kollha ta 'tiegħek varjabbli affarijiet differenti. 90 00:04:51,190 --> 00:04:54,920 Iżda jistgħu jiksbu tip ta 'diżgustanti jekk l-istess isem varjabbli 91 00:04:54,920 --> 00:04:58,820 jidher fil-funzjonijiet multipli, li se jiġri ħafna. 92 00:04:58,820 --> 00:05:02,130 Jekk inti qatt jagħmlu xogħol fil -dinja reali fejn 93 00:05:02,130 --> 00:05:06,080 inti taħdem fuq kollaborattiv programmi u nies fi gruppi differenti 94 00:05:06,080 --> 00:05:11,000 qed jaħdmu flimkien biex jiktbu l-istess programm jew l-istess sett ta 'programmi, 95 00:05:11,000 --> 00:05:13,900 dawn ser spiss użu mill-ġdid varjabbli ismijiet, b'mod partikolari dawk komuni 96 00:05:13,900 --> 00:05:18,020 bħal x, y, i, j, u l-bqija. 97 00:05:18,020 --> 00:05:20,370 >> Imma meta fatturi varjabbli l-istess isem, il-kwistjonijiet ambitu 98 00:05:20,370 --> 00:05:23,080 jistgħu jiksbu ftit delikati li parse. 99 00:05:23,080 --> 00:05:26,790 Per eżempju, inti taf dak li jkun stampat 100 00:05:26,790 --> 00:05:30,190 fl-aħħar ta 'dan il-programm partikolari? 101 00:05:30,190 --> 00:05:31,280 Tieħu minuta. 102 00:05:31,280 --> 00:05:33,382 Pause il-video u aqra permezz ta 'dan il-programm. 103 00:05:33,382 --> 00:05:35,590 Tista 'tara fil-quċċata aħna jkollu dikjarazzjoni funzjoni 104 00:05:35,590 --> 00:05:37,350 għal funzjoni msejħa inkrement. 105 00:05:37,350 --> 00:05:40,800 Dik il-funzjoni tieħu waħda parametru, integer li nitolbu x. 106 00:05:40,800 --> 00:05:42,610 U outputs integer. 107 00:05:42,610 --> 00:05:44,820 Dik hija l-tip ta 'ritorn fil-bidu. 108 00:05:44,820 --> 00:05:48,140 >> Imbagħad għandna prinċipali, koppja ta 'linji tal-kodiċi fil prinċipali, l-aħħar minnhom 109 00:05:48,140 --> 00:05:49,250 hija dikjarazzjoni print. 110 00:05:49,250 --> 00:05:51,140 U ftakar, dak l-kwistjoni hawnhekk. 111 00:05:51,140 --> 00:05:54,240 Dak li huwa attwalment se tkun stampati fl-aħħar ta din il-funzjoni? 112 00:05:54,240 --> 00:05:58,110 U allura aħna attwalment ikollhom l- definizzjoni ta 'inkrement hawn taħt. 113 00:05:58,110 --> 00:06:01,760 >> Allura tieħu minuta, pass permezz il-kodiċi, traċċa affarijiet out. 114 00:06:01,760 --> 00:06:08,100 Taf liema se jiġi stampat fil tmiem dan il-programm partikolari? 115 00:06:08,100 --> 00:06:08,600 >> Kull dritt. 116 00:06:08,600 --> 00:06:11,433 Nisperaw, inti ħadt ftit sekondi li tipprova u parse dan wieħed out. 117 00:06:11,433 --> 00:06:13,370 Ejja nagħmlu dan flimkien. 118 00:06:13,370 --> 00:06:16,022 >> Hekk stajt qasmu l-inkrement tal dikjarazzjoni fil-quċċata hemmhekk. 119 00:06:16,022 --> 00:06:17,230 Kien tip ta 'distrazzjoni. 120 00:06:17,230 --> 00:06:18,570 Mhuwiex varjabbli tagħha stess. 121 00:06:18,570 --> 00:06:19,879 Huwa ma jkollu ambitu tagħha stess. 122 00:06:19,879 --> 00:06:21,920 Huwa biss funzjoni dikjarazzjoni, hekk għal skopijiet 123 00:06:21,920 --> 00:06:24,330 ta 'tipprova parse out x'hemm jiġri f'dan il-programm, 124 00:06:24,330 --> 00:06:26,660 nistgħu kif ukoll biss jevitaw dan. 125 00:06:26,660 --> 00:06:29,560 >> Issa għandna f'dan il-każ, il- Raġuni din il-problema hija delikata 126 00:06:29,560 --> 00:06:34,030 huwa għaliex għandna varjabbli lokali fl kemm prinċipali u inkrement, li kull wieħed minnhom 127 00:06:34,030 --> 00:06:35,090 huwa msejjaħ x. 128 00:06:35,090 --> 00:06:39,830 U naturalment il-qofol ta 'din il-kwistjoni hija jippruvaw suss liema x gets inbidlet 129 00:06:39,830 --> 00:06:41,890 u kif ma jiksbu mibdula. 130 00:06:41,890 --> 00:06:46,900 Hekk stajt kkulurita kull każ ta 'x li l-lokali għal aħmar prinċipali. 131 00:06:46,900 --> 00:06:52,040 U stajt kkulurita kull każ ta x hu lokali biex inkrement blu. 132 00:06:52,040 --> 00:06:55,220 >> Avviż f'dak tielet linja ta prinċipali, y ugwali inkrement 133 00:06:55,220 --> 00:07:00,800 x, li inkrement mhux qed għadda x prinċipali; jew il aħmar x. 134 00:07:00,800 --> 00:07:03,320 Huwa jkollna għadda kopja ta 'dan. 135 00:07:03,320 --> 00:07:06,987 U huwa biss se taħdem ma li kopja tagħha, il-blu x. 136 00:07:06,987 --> 00:07:08,820 Jekk int matematikament inklinat, inti tista 137 00:07:08,820 --> 00:07:14,230 jkunu minflok ħsieb ta 'dan bħala x sub m għall prinċipali u x sub i għall inkrement. 138 00:07:14,230 --> 00:07:15,700 Imma hija l-istess idea. 139 00:07:15,700 --> 00:07:18,999 x sub m, jew il-aħmar x tal fil-slide ta 'qabel, 140 00:07:18,999 --> 00:07:21,790 huma l-varjabbli li huma local-- huwa l-każ ta 'x pjuttost li 141 00:07:21,790 --> 00:07:26,900 huwa lokali li prinċipali, u x sub i, jew il- varjabbli blu fil-slide ta 'qabel, 142 00:07:26,900 --> 00:07:30,760 huma l-każijiet ta 'x li huma lokali biex inkrement. 143 00:07:30,760 --> 00:07:36,220 >> Allura, inti kienu kapaċi biex insemmu dak din il-funzjoni stampata fl-aħħar? 144 00:07:36,220 --> 00:07:39,420 Jien Doug Lloyd, u dan huwa CS50. 145 00:07:39,420 --> 00:07:41,542