[Mūzikas atskaņošanai] Doug LLOYD: Labi, tāpēc pieņemsim runāt par komandrindas argumentus. Tātad, līdz šim gaitā diezgan daudz visas programmas ir iespējams, sākās tāpat this-- int main tukšumu. Mēs esam apkopojam lietotāja ievadi, ja mums tas ir vajadzīgs mūsu programmu, tādu kā Mario programma, piemēram, ar in-programmā uzvedņu. Mums nav nepieciešams, lai mainītu deklarāciju par galveno, jo tā vietā iekšpusē galvenā mēs tikai teikt, jūs varat zvanīt, lai saņemtu int. Cik liela jūs vēlaties piramīda būt? Vai jūs varat zvanīt, lai saņemtu float-- cik daudz pārmaiņu man būtu izeja lietotājam? Ir vēl viens veids, lai gan, un, ja mēs vēlamies, lai mūsu lietotājiem lai varētu nodrošināt datus mūsu programma runtime nevis brīdi programma darbojas, smalks atšķirība, bet dažreiz ļoti noderīgs viens, mums ir nepieciešama jauna veida deklarēt galvenais. Mēs nevaram izmantot int galveno spēku, ja mēs vēlamies, lai savākt citus datus komandrindas ja lietotājs palaiž programmu, tātad komandrindas argumentus. Savākt šos komandrindas argumenti, no lietotāja, mainīt savu deklarāciju Galvenais, lai izskatās this-- int Main, atvērtas paren, int argc, komats, string argv, kvadrātiekavas, un tad atveriet cirtaini lencēm. Tātad, ko tas nozīmē jau? Nu, mēs iet ar diviem parametriem, vai argumentus, vai izejvielas uz galveno. Viens, vesels skaitlis sauc argc, un otrs ir tas, ko? Tas ir masīvs stīgas, vai ne? Mēs redzam, ka kvadrātiekava notācija. Tas ir masīvs stīgas. Tas nav indivīds string, tas ir masīvs stīgas. Un šie divi argumenti, argc un argv, ļauj jums zināt, ko datu lietotājs ir sniedzis pie komandrindas un cik daudz viņi sniegti komandrindas. Diezgan noderīgas lietas strādāt. Argc stendi arguments skaits, un jums vajadzētu zināt, starp citu, ka jūs varētu zvanīt argc ko jūs vēlaties to. Jūs varat zvanīt argv ko jūs vēlējāties. Šie ir tikai parastie nosaukumi ka mēs izmantot them-- arguments skaits, un kā mēs redzēsim sekundē, arguments vektors, argv. Bet jums nav viņiem piezvanīt argc un argv ja jūs nevēlaties, bet parasti, tas ir tas, ko mēs darām. So anyway, argc, arguments skaits. Tas ir vesels skaitlis tipa mainīgo un tā, kā jūs varētu gaidīt, ja mums ir divas lietas ka mēs ejam, lai būtu atrast , kādi tie ir drukāti un cik daudz sīkumi lietotājs drukāti, argc ir dodas, lai pastāstītu mums, cik daudz sīkumi lietotājs drukāti. Tātad, tas dod jums vairākas komandrindas argumentus lietotājs drukāti, kad programma tika izpildīts. Tātad, ja jūsu programma ir palaist dot slash mantkārīgs, un iekšpusē jūsu mantkārīgs ieprogrammēt savu galveno funkciju ir deklarācija int galvenais int argc, stīgu argv kvadrātiekavas, tad argc šajā gadījumā, ir viens. Tagad paziņojums mums nav saskaitīt, cik daudzas lietas lietotājs drukāti pēc programmas nosaukuma. Programma Nosaukums pats par sevi skaitās kā komandrindas argumentu. Tātad dot slash mantkārīgs, jo ka gadījumā, argc ir viens. Ja lietotājs drukāti slash mantkārīgs 1024 CS50 pie komandrindas, argc šajā gadījumā būtu trīs. Un mēs zinām, tas tāpēc, ka ceļš ka dalījums starp stīgām tiek konstatēts, vai tur ir telpa, vai tab, vai kaut kas līdzīgs, ka starp tām. Tāpēc jebkura summa atstarpēm, tā saukto, starp vērtībām drukāti komandrindas norāda, cik daudz tur ir. Tātad dot slash mantkārīgs Space 1024 telpu CS50, argc, šajā gadījumā, ir trīs. Argv ir arguments vektors. Vector, starp citu, ir tikai cits vārds masīva, un tas ir masīvs kas saglabā stīgas. Viena rinda uz elementu, kas ir stīgas, ka lietotājs faktiski drukāti pie komandrindas kad programma tika izpildīts. Tagad, kā tas ir ar jebkuru masīvs, ja jums atceros no mūsu diskusijas par bloki, tad no argv pirmais elements vienmēr būs atrodami at argv kvadrātiekava nulles. Tas ir pirmais indekss no argv masīva. Tā, ka will-- un patiesībā, ka griba vienmēr ir programmas nosaukums, vienmēr atrasties argv kvadrātiekava nulle. Pēdējais elements argv vienmēr ir atrasts at argv kvadrātiekavas argc mīnus viens. Vai jūs redzat, kāpēc? Atcerieties, cik daudz elementu pastāv šajā masīvā. Nu, mēs zinām, that-- tas ir argc elementu skaits. Ja lietotājs drukāti trīs lietas komandrindas, argc ir trīs. Bet tāpēc, ka c, kad mēs strādājam ar blokiem, katrs no masīva elements, vai drīzāk indeksi masīvs, sākot no nulles. Ja mums ir trīs elementi mūsu masīvs, mums ir elements pie argv nulles, elements pie argv vienā, un elements pie argv divi. Nav elements pie argv trīs, un masīva izmēru trīs. Tātad, tāpēc pēdējā no argv elements vienmēr varat atrodama argv laukumā kronšteini argc mīnus viens. Tātad pieņemsim, ka lietotājs izpilda mantkārīgs programma kā follows-- ja tie ierakstiet komandrindas dot slash mantkārīgs telpa 1024 kosmosa CS50, un kāda iemesla dēļ mēs esam jau sagatavoti mūsu mantkārīgs programmu zināt un strādāt ar šiem komandrindas argumentus. Mums nav iepriekš, kad mēs strādājām par to, lai mantkārīgs problēmu, bet pieņemsim, ka mēs esam tagad pārveidota tas tāpēc, ka mēs procesu komandrindas argumentus kaut kādā veidā. Šajā gadījumā, argv nulli ir dot slīpsvītra mantkārīgs. Kas argv viens? Nu, tas ir 1024, vai ne? Tas ir 1024, bet šeit ir patiešām svarīgi distinction-- Vai atceraties datu tipu argv? Tā veikalos stīgas, vai ne? Bet izskatās, ka 1024 ir vesels skaitlis vērtība. Tas ir ļoti svarīgi, atšķirība, un faktiski gatavojas kļūt kaut ko, kas jums varētu rasties vēlāk problēmas. Viss argv ir saglabāts kā virkni. Tātad argv viena cilvēka saturs ir string viens, nulle, divi, četri, kas sastāv no šiem četriem burtiem. Tas ir kā tad, ja lietotājs ievadījis viens, nulle, divi, četri kā atsevišķus burtus vai rakstzīmes. Tas nav vesels skaitlis 1024, un tāpēc jūs nevarat tieši strādāt ar to, sakot int 1000, vai diezgan int x vienāds argv viens mīnus 24. Intuitīvi, jūs varētu domāt par ka kā, OK, arī tas ir 1,024 mīnus 24, tā x ir vienāda ar 1000. Bet patiesībā, tas nav gadījums, jo argv viens ir virkne. Stīgu 1024. Tagad tur ir funkcija, kas var būt izmanto, lai pārvērstu stīgas uz veseliem skaitļiem. Es ne sabojāt to jums tagad, bet es esmu pārliecināts, ka Zamyla būs priecīgs jums pastāstīt par to walkthrough nākotnes problēmu. Bet jūs varat arī atrast Problēmas like-- attaisnojums me, funkcijas, kas būtu izdarīt atsaucoties 50, ja jums iet uz Rokasgrāmatā Jūs varat atrast funkciju, kas padarīs šo pārveidi par jums. Bet atkal, jo walkthrough nākotnes problēmas, Zamyla būs priecīgi pateiks, kādu funkciju tas ir, ka būs konvertēt string 1024 līdz skaitlim 1024. Labi, tā pārvietojas on. Mēs esam uz mūsu argv nulli, mēs esam uz argv vienu. Kas ir argv divās? CS50. Ka viens ir iespējams diezgan pašsaprotami. Kas ir argv trīs? Nu atkal, mēs īsti nezinām, vai ne? Mums ir masīva izmēru trīs, tas, cik daudzi elementi lietotājs drukāti pie komandrindas, Tātad, ja mēs ejam uz argv trīs, Mēs tagad nepārkāpjot tā robežas mūsu masīva. Kompilators ļaus mums izdarīt, tur nav intuitīvs problēma ar to, bet attiecībā uz faktiski Kas notiek notiktu, mēs īsti nezinām. Tas atkarīgs no tā, kāda ir kas atrodas pie atmiņu, kurā argv trīs būtu sagaidāms būt. Un tā mēs varētu beigties kļūst prom skots bezmaksas. Biežāk nekā nav, jo īpaši, ja jūs strādājat ar argv pretstatā uz jebkuru citu masīvs tas ir mūsu programmā, mēs, iespējams, gatavojas ciest segmentācija vaina. Tātad vēlreiz, Noteikti nedrīkst pārkāpt robežas Sava bloki, īpaši argv, ņemot vērā tās augsto pakāpi nozīme jūsu programmas. Es esmu Doug Lloyd. Tas ir CS50.