[Daqq tal-mużika] Doug LLOYD: Id-dritt, so ejja jitkellmu dwar argumenti kmand tal-linja. Allura, s'issa fil-kors pretty ħafna kollha ta 'programmi tiegħek Probabilment bdew bħal this-- null prinċipali int. Imxejna ilha tiġbor jintuza mill-utent jekk għandna bżonn fi programmi tagħna, bħall- Programm Mario, per eżempju, billi in programm iqajjem. Aħna mhux meħtieġ biex timmodifika id-dikjarazzjoni ta 'prinċipali, minħabba minflok ġewwa tal ewlenin li għandna biss jgħidu, inti tista 'sejħa hija li tikseb int. Kif kbar tridu l-piramida li jkun? Jew inti tista 'sejħa hija li tikseb float-- bidla kemm għandi output għall-utent? Hemm mod ieħor għalkemm, u jekk irridu utenti tagħna biex ikunu jistgħu jipprovdu data lill-programm tagħna fil runtime minflok filwaqt il-programm qed taħdem, distinzjoni sottili iżda kultant wieħed utli ħafna, għandna bżonn ta 'forma ġdida ta' dikjarazzjoni prinċipali. Aħna ma tistax tuża null prinċipali int jekk irridu li jiġbru data oħra fil--linja tal-kmand meta l-utent tiġġestixxi l-programm, għalhekk argumenti kmand tal-linja. Biex jiġbru dawn il-linja tal-kmand argumenti mill-utent, bidla dikjarazzjoni tiegħek ta prinċipali lill-dehra this-- int ewlenin, paren miftuħa, argc int, comma, ARGV string, parentesi kwadri, u mbagħad iftaħ kaboċċi Brace. Allura dak li jfisser diġà? Well, aħna jgħaddu fil żewġ parametri, jew argumenti, jew inputs għall ewlenija. Waħda, integer imsejħa argc, u l-ieħor huwa dak? Huwa ta 'firxa ta' kordi, right? Naraw li notazzjoni parentesi kwadri. Huwa ta 'firxa ta' kordi. Huwa mhux string individwali, huwa ta 'firxa ta' kordi. U dawn iż-żewġ argumenti, argc u ARGV, jgħinuk biex tkun taf liema data l-utent ipprovda fil--linja tal-kmand u kemm affarijiet li sakemm fil--linja tal-kmand. Affarijiet Pretty utli biex jaħdmu ma '. Argc stands għall-għadd argument, u inti għandek tkun taf, mill-mod, li inti tista 'sejħa argc xi trid dan. Tista 'sejħa ARGV kwalunkwe int riedu. Dawn huma ismijiet biss konvenzjonali li nużaw għall them-- għadd argument, u kif Ser naraw fit-tieni, argument vector, ARGV. Imma inti ma għandekx jsejħulhom argc u ARGV jekk inti ma tridx li, iżda konvenzjonalment, dan huwa dak li nagħmlu. Allura xorta, argc, l-għadd argument. Huwa ta 'varjabbli tat-tip numru sħiħ u għalhekk, bħala inti tista 'tistenna, jekk għandna żewġ affarijiet li aħna qed tmur biex tkun tinstab barra dak dawn huma ittajpjat u l-għalf kemm l utent ittajpjat, argc huwa ser jgħidulna kemm Jittieħed l-utent ittajpjat. Għalhekk jagħtik numru ta ' argumenti kmand tal-linja utent ttajpjati meta l-programm kien esegwit. Mela jekk program tiegħek hija run dot mmejla greedy, u ġewwa ta greedy tiegħek programm funzjoni prinċipali tiegħek għandu l-int dikjarazzjoni argc int prinċipali, string ARGV parentesi kwadri, allura argc f'dak il-każ huwa wieħed. Issa avviż aħna ma għadd kemm ħafna affarijiet l-utent ittajpjat wara l-isem programm. L-isem programm innifsu jgħodd bħala argument kmand tal-linja. Allura dot mmejla greedy, fil F'dak il-każ, argc huwa wieħed. Jekk l-utent ittajpjat mmejla greedy 1024 CS50 fil--linja tal-kmand, argc f'dak il-każ ikun tlieta. U nafu dan minħabba l-mod li d-diviżjoni bejn il-kordi huwa li tinstab tkun dwar jekk hemm spazju, jew tab, jew xi ħaġa bħal dik bejniethom. Allura kull ammont ta 'spazju abjad, hekk imsejħa, bejn il-valuri ittajpjat kmand tal-linja jindika kemm hemm. Allura dot mmejla ispazju greedy 1024 spazju CS50, argc, f'dak il-każ, huwa tlieta. ARGV huwa l-argument vector. Vector, mill-mod, huwa biss kelma oħra għal firxa, u dan huwa l-firxa li taħżen kordi. Wieħed string kull element, li huwa il-kordi li l-utent fil-fatt ittajpjat fil--linja tal-kmand meta l-programm kien esegwit. Issa, kif inhu l-każ ma 'kwalunkwe firxa, jekk inti jitlob lura mingħandhom diskussjoni tagħna ta ' arrays, l-ewwel element ta 'ARGV huwa dejjem se jinstabu fil ARGV bracket kwadru żero. Dik hija l-ewwel indiċi mill-firxa ARGV. Allura li will-- u fil-fatt, li se dejjem ikun l-isem tal-programm, dejjem se jkun jinsab fil ARGV parentesi kwadri żero. L-aħħar element tal ARGV huwa dejjem sabet fil ARGV parentesi kwadra argc minus wieħed. Inti tara għaliex? Ftakar kif ħafna elementi jeżistu f'dan array. Well, nafu that-- huwa Numru argc ta 'elementi. Jekk l-utent ittajpjat tliet affarijiet fil il-linja ta 'kmand, argc huwa tlieta. Iżda għaliex c, meta aħna qed jaħdmu ma arrays, kull element tal-firxa, jew pjuttost l-indiċi ta ' l-array, bidu għal żero. Jekk għandna tliet elementi fil tagħna array, għandna element fil ARGV żero, element fil ARGV waħda, u element fil ARGV tnejn. M'hemm l-ebda element fil ARGV tlieta, u l-firxa ta 'daqs tlieta. Allura hu għalhekk li l-aħħar element tad ARGV tista 'dejjem 'tinstab fuq kwadru ARGV argc parentesi minus wieħed. Mela ejja nassumu l tesegwixxi utent il-programm greedy kif follows-- jekk dawn it-tip fil-kmand tal-linja dot slash greedy ispazju 1024 CS50 ispazju, u għal kwalunkwe raġuni konna diġà mħejji programm greedy tagħna tkun taf u taħdem ma 'dawn argumenti kmand tal-linja. Aħna ma kinux qabel meta ħdimna fuqha għall-problema greedy, imma ejja ngħidu aħna issa stajt modifikata hekk li nagħmlu proċess l-argumenti kmand tal-linja b'xi mod. F'dan il-każ, ARGV żero huwa dot slash greedy. X'hemm ARGV waħda? Ukoll, huwa 1024, id-dritt? Huwa 1024, iżda hawnhekk huwa a distinction-- verament importanti do you remember-tip tad-data ta 'ARGV? Taħżen kordi, id-dritt? Iżda jidher qisu 1024 huwa valur sħiħ. Dan huwa verament importanti distinzjoni, u huwa attwalment se ssir xi ħaġa li inti tista 'tiltaqa fil-problemi aktar tard. Kollox fil ARGV huwa maħżuna bħala sekwenza. Allura kontenut ARGV wieħed huma l- string wieħed, żero, ġimagħtejn, erba, jikkonsisti minn dawn l-erba 'karattri. Huwa daqs li kieku l-utent ittajpjat wieħed, żero, ġimagħtejn, erba kif ittri individwali jew karattri. Mhuwiex n-numru sħiħ 1024, u għalhekk inti ma tistax direttament jaħdmu magħha billi qal int 1000, jew pjuttost int x ugwali ARGV wieħed nieqes 24. Intuwittivament, inti tista 'taħseb ta' dak kif, OK, ukoll huwa 1024 minus 24, hekk x hija ugwali għal 1,000. Imma fil-fatt, li mhux il-każ, għaliex ARGV waħda hija sekwenza. L-sekwenza 1024. Issa hemm funzjoni li tista 'tkun tintuża biex tikkonverti kordi li interi. I mhux se jħassru dan għalik issa, imma jien ċert Zamyla se jkunu kuntenti li jgħidlek dwar dan fil il walkthrough għal problema futur. Iżda int tista 'ssib ukoll problemi like-- skuża me, funzjonijiet li kieku tagħmel dan b'referenza 50, jekk inti tmur għall-gwida ta 'referenza inti tista 'ssib funzjoni li se tagħmel din il-konverżjoni għalik. Iżda għal darb'oħra, fil-walkthrough għal problema futur, Zamyla se jkunu kuntenti li jgħidlek liema funzjoni huwa li jikkonvertu l- string 1024 li n-numru sħiħ 1024. Dritt kollha, hekk jimxu fuq. Imxejna koperti żero ARGV tagħna, konna koperti ARGV wieħed. X'hemm fil ARGV tnejn? CS50. Li wieħed probabbilment pretty awto spjegazzjoni. X'hemm fil ARGV tliet? Well darb'oħra, aħna ma verament jafu, right? Għandna firxa ta 'daqs tlieta, li kif ħafna elementi l-utent ittajpjat fil--linja tal-kmand, hekk jekk immorru ARGV tlieta, aħna issa qed qbiż il-limiti ta 'firxa tagħna. Il kompilatur se jgħidilna jagħmlu dan, hemm ebda problema intuwittivi magħha, imma f'termini ta 'fatt x'inhu għaddej li jiġri, aħna ma verament jafu. Hija tiddependi fuq dak li hu tinsab fil-memorja fejn ARGV tlieta jkunu mistennija li jkunu. U hekk aħna jista 'jispiċċa jkollna bogħod Skoċċiż ħielsa. Aktar probabbli milli le, b'mod partikolari meta qed taħdem ma ARGV għall-kuntrarju għal kwalunkwe firxa oħra li fil-programm tagħna, aħna qed probabbilment se jsofru tort segmentazzjoni. Għalhekk għal darb'oħra, Kun żgur li ma eċċediex il-limiti tal arrays tiegħek, partikolarment ARGV, minħabba grad għoli ta importanza fil-programmi tiegħek. Jien Doug Lloyd. Dan huwa CS50.