>> [موسیقی]
>> داگ لوید: همه حق است، بنابراین اجازه دهید درباره آرگومان خط فرمان صحبت کنید.
بنابراین، تا کنون در این دوره بسیار همه از برنامه های خود را
احتمالا آغاز شده مانند this-- اعتبار اصلی اعضای هیات.
ما جمع آوری شده است ورودی کاربر اگر ما به آن نیاز
در برنامه های ما، مانند برنامه ماریو، برای مثال،
توسط در برنامه دهید.
ما نیاز به تغییر اعلام اصلی،
چرا که به جای داخل ما اصلی فقط می گویند، شما ممکن است آن پاسخ به نوع int است.
چگونه بزرگ می خواهید هرم می شود؟
یا شما ممکن است آن را به شناور تغییر چقدر
من باید خروجی به کاربر؟
>> راه دیگری وجود دارد هر چند، و اگر ما می خواهیم کاربران ما
قادر به ارائه داده ها به برنامه های ما
در زمان اجرا به جای در حالی که برنامه در حال اجرا است،
تمایز ظریف اما گاهی اوقات بسیار مفید است،
ما نیاز به یک شکل جدید از اعلام اصلی.
ما می توانیم اعتبار اصلی اعضای هیات اگر ما می خواهید استفاده کنید جمع آوری داده های دیگر در خط فرمان
زمانی که کاربر اجرا می شود این برنامه، از این رو آرگومان خط فرمان.
>> برای جمع آوری این خط فرمان استدلال از کاربر،
تغییر اعلامیه خود را از اصلی به مانند this-- بین المللی نگاه کنید
اصلی، پرانتز باز، تعداد آنها از نوع int، کاما، ی argv رشته، براکت،
و سپس باز کردن آکولاد.
بنابراین به چه معنا است در حال حاضر؟
خب، ما در دو پارامتر عبور، و یا استدلال، و یا ورودی به اصلی.
یکی، یک عدد صحیح به نام تعداد آنها، و از سوی دیگر چه چیزی است؟
این آرایه ای از رشته، درست است؟
ما که علامت کروشه مربع را ببینید.
این آرایه ای از رشته است.
آن را یک رشته فردی نیست، آن آرایه ای از رشته است.
و این دو استدلال، تعداد آنها و argv، شما را قادر به دانستن آنچه که داده های کاربر
تا در خط فرمان ارائه و چگونه بسیاری از چیزهایی را که
در خط فرمان ارائه شده است.
همه چیز بسیار مفید برای کار با.
>> تعداد آنها مخفف تعداد استدلال، و شما باید مطمئن شوید، به هر حال،
که شما می توانید تعداد آنها پاسخ هر آنچه که شما آن را می خواهم.
شما می توانید هر آنچه شما می خواهید و argv پاسخ.
این نام فقط معمولی که ما برای them-- تعداد آرگومان استفاده کنید،
و همانطور که ما در یک دوم را ببینید، بردار استدلال، ی argv.
اما شما لازم نیست که به آنها پاسخ تعداد آنها و argv اگر شما نمی خواهید به،
اما مرسوم، این چیزی است که ما انجام می دهیم.
>> پس به هر حال، تعداد آنها، تعداد استدلال.
این متغیر عدد صحیح نوع و بنابراین، به عنوان شما ممکن است انتظار، اگر ما دو چیز
که ما در حال رفتن به پیدا کردن شود آنچه این تایپ
و چیزهای چقدر کاربر تایپ، تعداد آنها است
رفتن به ما بگویید که چقدر چیزهای کاربر تایپ.
پس از آن به شما می دهد تعدادی از کاربران آرگومان خط فرمان
تایپ زمانی که برنامه اجرا شد.
بنابراین اگر برنامه شما اجرا نقطه اسلش حریص،
و در داخل از حریص خود را برنامه عملکرد اصلی خود را
است از نوع int اعلان تعداد آنها از نوع int اصلی، رشته و argv براکت، پس از آن
تعداد آنها در آن صورت یکی است.
در حال حاضر متوجه ما نمی تعداد چند چیز
کاربر پس از نام برنامه تایپ.
نام برنامه خود را شمارش به عنوان یک آرگومان خط فرمان.
>> بنابراین نقطه اسلش حریص، در این مورد، تعداد آنها یکی است.
اگر کاربر تایپ بریده بریده حریص 1024 CS50 در خط فرمان، تعداد آنها در آن صورت
خواهد بود سه.
و ما این را میدانیم زیرا راه که تقسیم بین رشته
تشخیص داده شده است این است که آیا یک فضا، و یا تب وجود دارد،
یا چیزی شبیه به بین آنها است.
بنابراین هر مقدار از فضای سفید، به اصطلاح، بین مقادیر تایپ خط فرمان
نشان می دهد که چگونه بسیاری وجود دارد.
بنابراین نقطه اسلش فضای حریص 1024 فضای CS50، تعداد آنها، در آن صورت، سه است.
>> ی argv بردار استدلال است.
بردار، به هر حال، این است که فقط کلمه ای دیگر برای یک آرایه،
و این یک آرایه است که رشته ذخیره می کند.
یک رشته در هر عنصر است که رشته که کاربر در واقع
تایپ در خط فرمان زمانی که برنامه اجرا شد.
در حال حاضر، به عنوان مورد است با هر آرایه، اگر شما
یاد از بحث ما آرایه ها، عنصر اول و argv
همیشه یافت می شود در ی argv براکت صفر است.
که شاخص اول از آرایه ی argv.
به طوری که will-- و در واقع، که همیشه نام این برنامه باشید،
همیشه در واقع می شود ی argv براکت صفر است.
>> آخرین عنصر و argv است همیشه در ی argv براکت تعداد آنها منهای یک.
آیا به نظر شما چرا؟
به یاد داشته باشید چگونه بسیاری از عناصر در این آرایه وجود دارد.
خب، ما می دانیم که آن را that-- تعداد تعداد آنها از عناصر.
اگر کاربر سه چیز در تایپ خط فرمان، تعداد آنها سه است.
اما چون در C، زمانی که ما در حال کار با آرایه، هر عنصر از آرایه،
و یا به جای شاخص آرایه، در صفر شروع می شود.
اگر ما سه عنصر در ما آرایه، ما باید یک عنصر در argv را به صفر،
یک عنصر در یک ی argv، و یک عنصر در argv را دو.
هیچ عنصر در argv را وجود دارد سه، و مجموعه ای از اندازه سه.
به همین دلیل آخرین عنصر و argv می توانید همیشه
در مربع و argv پیدا شده است تعداد آنها براکت منهای یک.
>> بنابراین اجازه دهید فرض را اجرا کاربران برنامه حریص به عنوان follows--
اگر در نقطه خط فرمان تایپ آنها بریده بریده حریص فضای 1024 فضای CS50،
و به هر دلیلی که ما کرده ایم در حال حاضر آماده برنامه حریص ما
به دانستن و کار با این آرگومان خط فرمان.
ما قبلا نیست که ما کار کرده بر روی آن برای مشکل حریص،
اما اجازه دهید بگویم که ما در حال حاضر اصلاح شده آن را به طوری که ما فرایند انجام
استدلال خط فرمان در برخی از راه.
در این مورد، و argv صفر بریده بریده است نقطه حریص.
ی argv یکی چه خبر؟
خوب، آن را 1024، درست است؟
این 1024 است، اما در اینجا یک distinction-- واقعا مهم
از نوع داده و argv به یاد دارید؟
>> این فروشگاه رشته، درست است؟
اما آن را مانند به نظر می رسد 1024 یک مقدار صحیح است.
این واقعا مهم تمایز، و در واقع
رفتن به چیزی تبدیل شده که شما ممکن است در مشکلات بعد روبرو می شوند.
همه چیز در argv است به عنوان یک رشته ذخیره می شود.
بنابراین محتویات ی argv یکی هستند رشته یک، صفر، دو، چهار،
شامل آن چهار شخصیت.
آن را به عنوان اگر کاربر تایپ است یک، صفر، دو، چهار
به عنوان حرف یا کاراکتر فردی است.
آن است که عدد صحیح 1024 نیست، و بنابراین شما می توانید به طور مستقیم نمی
کار با آن را با گفتن INT 1،000، یا و نه از نوع int x برابر و argv منهای یک 24.
>> به طور مستقیم، شما ممکن است که فکر می کنم عنوان، OK، به خوبی آن را 1،024 منهای 24،
بنابراین X تا 1،000، برابر است.
اما در واقع، که این مورد نیست، چون ی argv یک رشته است.
رشته 1024.
در حال حاضر یک تابع است که می تواند وجود داشته باشد مورد استفاده برای تبدیل رشته به عدد صحیح.
من آن را برای شما را خراب نکند حال حاضر، اما من مطمئن هستم که Zamyla
خوشحال به شما بگویم در مورد آن را در خواهد به خرید برای یک مشکل آینده است.
اما شما همچنین می توانید پیدا کنید بهانه ای مشکلات like--
من، توابعی که در انجام این کار در مرجع 50،
اگر شما به راهنمای مرجع بروید شما می توانید یک تابع پیدا کنید که
این تبدیل را برای شما می سازد.
اما باز هم، در خرید برای یک مشکل آینده،
Zamyla خوشحال به خواهد بود شما چه تابع به
آن است که تبدیل رشته 1024 به عدد صحیح 1024.
>> همه حق است، بنابراین در حال حرکت است.
ما صفر و argv ما تحت پوشش ام، ما ی argv یک پوشش داده ایم.
چه در argv دو است؟
CS50.
که احتمالا آچیومنت.
چه در argv سه است؟
خوب دوباره، ما واقعا نمی دانم، درست است؟
ما مجموعه ای از اندازه سه، که چگونه بسیاری از عناصر کاربر
تایپ در خط فرمان، بنابراین اگر ما به سه و argv،
ما در حال حاضر تجاوز از مرزهای آرایه است.
کامپایلر اجازه دهید ما این کار، هیچ مشکلی بصری با آن وجود دارد،
اما در واقع از نظر چه خبر اتفاق افتد، واقعا نمی دانند.
آن را در چه بستگی دارد واقع در حافظه که در آن
ی argv سه انتظار می رود باشد.
و بنابراین ما می تواند تا پایان دور شدن اسکاتلندی رایگان.
بیشتر احتمال دارد از نه، به خصوص هنگامی که شما در حال کار با argv را به عنوان مخالف
به هر آرایه دیگر که در برنامه های ما،
ما احتمالا در حال رفتن به رنج می برند گسل تقسیم بندی. پس دوباره،
به تجاوز از مرزهای نیست از آرایه های خود را، به ویژه و argv،
با توجه به درجه بالای اهمیت در برنامه های خود را.
>> من داگ لوید هستم.
این CS50 است.