ZAMYLA chan: Hey, ყველას. კეთილი იყოს განყოფილება. დღეს, იქნება ყველა ვიქტორინა განიხილოს თქვენი Quiz ოთხშაბათს. იმედი მაქვს, ყველას ახსოვს, რომ მათ აქვთ Quiz ოთხშაბათს. და თუ არა, ასევე, ახლა თქვენ უკვე შეახსენა. ასე ოთხშაბათი დარწმუნდით გამოჩნდება კლასი ან სხვა საცხოვრებლით, როგორც საჭირო. თქვენ ბიჭები იქნება რა. ეს იქნება დიდი. და მე ვაპირებ ყველაფერი შემიძლია დაეხმაროს მოამზადოს თქვენ დღეს თქვენი ინტელექტუალური ახლა. და ასევე იმ შემთხვევაში, თუ არ ვიცი, არსებობს რა თქმა უნდა, ფართო განხილვის სხდომაზე დღეს დილის 7 საათზე Northwest ლაბორატორიები ოთახი B103. თქვენ ხედავთ, მე კიდევ ერთხელ encore როგორც მე უხელმძღვანელებს ნაწილი, რომელიც განხილვის სხდომაზე ასევე. ასე რომ, თუ თქვენ ვერ საკმარისი ჩემთვის ახლა, შეგიძლიათ მოვა ისევ ამაღამ. ყველა უფლება, ასე რომ პირველი ნივთები, პირველ. მხოლოდ რამდენიმე ვიქტორინა რჩევა, სანამ ჩვენ რეალურად ჩაყვინთვის, რათა განხილული. ასე რომ, როგორც ნებისმიერი გამოცდა, პრაქტიკა აუცილებლად დაგეხმაროთ out. არსებობს გამოცდები წარსულში ექვსი ან შვიდი წელი იქ, ასე რომ, ბევრი პრაქტიკა მასალა ბიჭებს აქვთ. და ფაქტია, რომ დღეს მართლაც მხოლოდ იქნება მიმდინარეობს ზე რაიმე თემა რომ თქვენ ბიჭები გაქვთ შეკითხვები, ასევე სამუშაო მეშვეობით პრაქტიკის პრობლემები საწყისი ინტელექტუალური ნულოვანი. ასე რომ, მე ჩააგდოს მდე ვიქტორინა ნულოვანი გასულ წელს აქ, და შეგიძლიათ მუშაობა მეშვეობით არანაირი პრობლემა რომ თქვენ ბიჭები სურს. ასე პრაქტიკოსი. თქვენ აპირებს დაიწყოს აკეთებს, რომ დღეს. კოდი ქაღალდზე. ისე ჰო, თუ ყველას შეიძლება რეალურად გავიდნენ ქაღალდი, რომ უნდა იყოს დიდი, იმიტომ, რომ თქვენ არ აპირებთ უნდა თქვენი კომპიუტერის გამოცდა და წერა კოდი ხელით ხშირად ბევრად უფრო რთული ვიდრე თქვენ შეიძლება ველოდოთ. თქვენ გამოიყენება მხოლოდ ხედავს მას და აკრეფით ის, და თქვენ გაქვთ თქვენი შემდგენელი დაგეხმაროთ out როდესაც თქვენ გაქვთ შეცდომები, მაგრამ თქვენ არ მიიღოს, რომ გამოცდა. ასე რომ, ეს ძალიან მნიშვნელოვანია, რომ რეალურად შეძლებს დაწერა კოდი, და რომ კუნთების ხსოვნის აკეთებს ხელით ნამდვილად დაგეხმარებათ. ასე რომ, ჩვენ სულ ცოტა ახლოს. ეს ორშაბათს. თქვენი გამოცდა ოთხშაბათს. მაგრამ თუ თქვენ გაქვთ დრო, აუცილებლად ერთ-ერთი გამოცდები შარშანდელი ან წლის წინ ქვეშ დრო შეზღუდვა საათ ნახევარი. უბრალოდ დაარტყა out საათში და ნახევარი დროის განმავლობაში, იჯდეს თავის ქვემოთ და უბრალოდ გაუძლო იმ პრობლემებს, თუ იყო რეალურად იღებენ, რადგან ერთი ყველაზე დიდი რამ, რომ ჩვენ გვესმის ტესტებში არის, რომ ისინი ძალიან დიდი ხნის განმავლობაში. ეს არის უამრავი მასალა. არსებობს ბევრი კითხვა, ყველაზე ხალხს არ შეუძლია დაასრულოს. მე ვიცი, რომ მთლიანად არ დასრულდება ჩემი ტესტები, როდესაც მე მივიღე კლასის. რომ შენიშვნა, როგორც ნაკლებად კომფორტული განყოფილებიანი, მესმის, რომ ეს, რა თქმა უნდა, იგულისხმება რომ cater ხალხს ყველა დონეზე. მთელი მიზეზი გვაქვს გაყოფილი ნაკლებად კომფორტული, სადღაც შორის, და უფრო კომფორტული არის სახის, რათა ის უფრო სამართლიანი. და თუ ნაკლებად კომფორტული, ის არ არის საჭირო, თავისთავად ყველაფერი. როგორიცაა, თუ თქვენ მიღების ყველაფერი, თქვენ, ალბათ, იყოს უფრო კომფორტული მონაკვეთზე. ამიტომ ცხადია, რომ არ სცემეს საკუთარ თავს up ძალიან ძნელი, თუ თქვენ ვერ დაასრულებს გამოცდა. მას ჩემგან, მე არ გავაკეთებთ. მე მაინც კონცენტრატორი. მე მაინც ეხმარება ასწავლოს რა თქმა უნდა. თქვენ უნდა იყოს ჯარიმა. ყველა უფლება. და ბოლოს, რაღაც ძილის. ცხადია, ნებისმიერი გამოცდა ჩვენ ამ საკითხზე ყოველთვის ვსაუბრობთ. Cramming ღამეს და ვერ ვიღებთ ნებისმიერი ძილის არ not-- შესაძლოა, რომ მუშაობს თქვენთვის, წავიდეთ ეს. მაგრამ დიდი უმრავლესობა ადამიანი, მიღების ზოგიერთი ძილის, გაქირავების თქვენი ტვინის დაისვენოთ და აღიდგინოთ მოსვლამდე გამოცდა ნამდვილად დაგეხმარებათ. გარდა ამისა, არსებობს თითქმის აუცილებლად უნდა candy გამოცდაზე, ასე რომ თქვენ უნდა ველით. თქვენ ბიჭები ვაპირებთ გავაკეთოთ დიდი. ეს იქნება ჯარიმა. და ახლა მომდევნო საათი და ნახევარი შეეცდება და მოსამზად თქვენ, როგორც საუკეთესო, როგორც შემიძლია. ასე რომ, მე სლაიდები ძირითადად ყველა მონაკვეთზე დღემდე. მე არ ვაპირებ გავლა ყველა მათგანი იმიტომ, რომ არ არის შესაძლებელია საათი და ნახევარი, ასევე სამუშაო მეშვეობით პრაქტიკის პრობლემები. ასე რომ, ნაცვლად მაქვს თემების ჩამონათვალი. ეს არის ყველა რამ რომ ჩვენ შეგვიძლია ვიქტორინა თქვენ. თუ არსებობს რამე რომ მართლაც გადასვლა out რომ უნდათ მეტი, რომ თქვენ გსურს მეტი კონცეპტუალურად, შემიძლია ცდილობენ და მისცეს თქვენ მიმოხილვა არ არსებობს. ან თუ თქვენ გსურთ ხტომა უფლება უნდა აკეთებს პრაქტიკის პრობლემები ერთად, ჩვენ შეგვიძლია ამის გაკეთება. ეს მდე თქვენ ბიჭები. არ არის, რომ ბევრი თქვენგანი. ასე რომ, ეს, რასაც თქვენ ბიჭები სურს ამის გაკეთება. მინდა, რომ ყველაზე სასარგებლო მიმართ ბიჭები. ასე რომ მე ნება თქვენ უბრალოდ გამოიყურება. აუდიტორია: ერთი რამ არის სქემა, რომ ჩვენ შევინარჩუნოთ ამბობენ, დასტის და ბევრი. უბრალოდ მთელი იდეა უკან და რას ნიშნავს ეს. ZAMYLA chan: ჰო, OK. ეს არის ყველა გზა და ბოლოს, ნება მომეცით გადახვევა მეშვეობით. აუდიტორია: ჩვენ არ უნდა ეს არის, მაგრამ რაც არ უნდა. ZAMYLA chan: იყო თუ არა არაფერი ამ ერთი. ამ სახის საეჭვო ხალხი? აუდიტორია: Yeah, I, მეორე, რომ. და შეგვიძლია ასევე არ ბუფერული overflow? ZAMYLA chan: ბუფერული overflow? OK. ასე ბუფერული overflow არის საკმაოდ მარტივია უბრალოდ ვისაუბროთ. ეს, ძირითადად, ბუფერები, ფიქრობთ, ზოგიერთი მასივი მეხსიერების რომ თქვენ გაქვთ, არა? ჩვენ, როგორც წესი, საუბრობენ ბუფერული overflow როდესაც თქვენ არ შემოწმების რამდენად მომხმარებლის აყენებს, არა? და იდეა, ბუფერული overflow არის ისინი ავრცელებენ შორს ძალიან ბევრი მონაცემები სივრცეში რომ თქვენ გამოყოფილი მათ, არა? ასე რომ, თუ თქვენ ამბობთ, მისცეს ჩემთვის ზოგიერთი გაგზავნა, ჩვენ ვთქვათ, რომ ისინი აპირებენ, us გონივრულ სიგრძე გაგზავნა. იქნებ რამდენიმე ხაზები, whatnot. ამიტომ, ჩვენ არ შეამოწმოთ. ამის ნაცვლად, ისინი შესანახი ჩვენთვის მთელი წიგნი რომ არის გზავნილი, და ეს overflows თანხა სივრცე, რომელიც ჩვენ გამოყოფილი. და რა ხდება არის ის, შეიძლება გადაწერა ადგილებში, რომ ეს არ უნდა. მე ვიცი, პროფესორი Malan განაცხადა რაღაც შესახებ ბუფერული overflow თავდასხმები. ასე რომ, სადაც მომხმარებელი მიიღებს შეყვანის ზოგიერთი მასიური რაოდენობით მონაცემები იმედი რომ მას overwrites ბოლო ბოლოს თქვენი ბუფერული და ცვლის რაღაც მაინტერესებს, I ჩვენ გვაქვს ის სლაიდები აქ. მე არ ვფიქრობ, რომ ჩვენ იმ სლაიდები აქ. მაგრამ, ძირითადად, ის overwrites გარკვეული ნაწილი მეხსიერება რომელიც საშუალებას აძლევს მას ხელმისაწვდომობის ნაწილები თქვენს კომპიუტერში რომ თქვენ არ ჩვეულებრივ ჰქონდეს. დიდი რამ ბუფერული overflow არის მხოლოდ გასაგებია, რომ ეს ხდება, როდესაც თქვენ არ ხართ შემოწმების რამდენად თქვენი პროფაილი აყენებს. როდესაც არ ხართ სახის დაცვის წინააღმდეგ. და მისი მარტივი ის, რომ ეს მხოლოდ თქვენი პროფაილი შესაყვანი მასიური რაოდენობით მონაცემთა მცდელობა გადავაწერო ზოგიერთი უსაფრთხოების ნაწილი თქვენი მეხსიერება. ეს ყველაფერი არის. ასე რომ ეს აქ, დასტის და ბევრი. ძირითადად ეს ყველაფერი არის მხოლოდ და მხოლოდ წარმომადგენლობა მეხსიერება და სადაც რამ ინახება. ეს მართლაც სახის ყველა თქვენ უნდა იცოდეთ. ყველაზე დიდი რამ, რომ თქვენ უნდა იცოდეს, არის that-- ნება მომეცით, თუ არსებობს უკეთესი აქ. ასე რომ, ეს დასტის აქ. ასე დასტის უნდა გააკეთოს ყველა ფუნქციები რომ თქვენ მოუწოდებდა ნებისმიერ დროს. და, რაც მთავარია, უნდა გვახსოვდეს, აპირებს off გასულ კვირას malloc არის, რომ თქვენ ნამდვილად არ აქვს აუცილებელია კონტროლი. ეს ყველაფერი დამოკიდებულია იმაზე, როცა გარკვეული ფუნქციები შესრულებაში. და როდესაც ისინი შესრულებაში, მათ რა ეწოდება დასტის ფარგლებში რომ წავიდეთ აქ. ასე რომ, ყველა სახის მოხდება ყოველგვარი რეალური შეყვანის თქვენგან. წერთ თქვენი პროგრამა, და ასეც აწარმოებს, და დასტის ტიპის იღებს ზრუნვა, როგორც ეს უნდა. ასე რომ, თუ მთავარ თქვენ მოუწოდებენ cube, რომელიც გადაეცემა აქ. ეს დაგიმზადებთ ფარგლებში. მაგრამ იქ არაფერი მკაფიოდ გააკეთოს შექმნა, რომ დასტის ჩარჩო, გარდა დავწეროთ ფუნქცია უნდა დაიწყოს, OK? რა სახის თქვენი კონტროლის ბევრი ერთად malloc. ასე რომ, როდესაც თქვენ malloc რაღაც, თქვენ იღებენ მეხსიერება ბევრი. და ეს არის მეხსიერების რომ თქვენ აქვს, გამო უკეთესი სიტყვა, გამოკვეთილ კონტროლი, იმიტომ, რომ მახსოვს malloc ეს, ძირითადად, არსებობს სანამ არ ამბობენ, წინააღმდეგ შემთხვევაში. იმ თქვენ, რომლებიც უყურებს მონაკვეთზე გასულ კვირას, ეს მანამ, სანამ თქვენ გითხრათ, რომ მიდიან. ეს იქნება, თუ წინააღმდეგ შემთხვევაში განუცხადა, რომ არ. ასე რომ, ბევრი არის რაღაც შეგიძლიათ წარმოიდგინოთ, როგორც მეხსიერება რომ თქვენ გაქვთ კონტროლი. და ეს მხოლოდ ორი სხვადასხვა დიდი რამ. გარდა ამისა, თქვენ არ უნდა ინერვიულოთ ძალიან ბევრი შესახებ დასტის და ბევრი კითხვები და, როგორც წესი, უფრო სამართლიანი თუ თქვენ გაქვთ ადგილობრივ პარამეტრები ან ფუნქცია უნდა იყოს დასტის და ბევრი. ცხადია, ამ შემთხვევაში ეს იქნება Stack. თუ თქვენ mallocing რაღაც, არის ის, რომ მოდის? ბევრი. თუ გადავხედავთ პრაქტიკა ტესტები, იმ ზოგადად ტიპის კითხვებზე რომ მათ აქვთ. თქვენ არ უნდა ფიქრი ძალიან ბევრი ამის შესახებ. თქვენ შეღწევას უფრო მკაფიოდ შესახებ დასტის და ბევრი მოგვიანებით ან სხვა CS კლასების. ასე რომ, უბრალოდ, რომელსაც სახის იდეა, რა არის ეს კარგი იქნება, რომელიც მე მხოლოდ სახის გადავიდა. ნებისმიერი სხვა თემა? დიახ? აუდიტორია: თქვენ გადასვლა ზე მეტი პოინტერები ერთხელ მართლაც სწრაფად? ZAMYLA chan: პოინტერები? გინდათ კონცეპტუალური მიმოხილვა პოინტერები ან პრაქტიკაში პოინტერები? აუდიტორია: სახის მოსწონს სინტაქსის. ZAMYLA chan: სინტაქსი? ჰო. OK, ჩვენ ვიღებთ არსებობს. ჰო, ისე, ეს მხოლოდ სახის რაღაც როდესაც თქვენ გაქვთ რეკურსიული ფუნქცია, ყოველ ჯერზე, რომ რეკურსიული ფუნქცია მოუწოდა, უბრალოდ ემატება სხვა დასტის ჩარჩო. საკმაოდ ბევრი მაგალითი როგორ, თქვენ არ აქვს კონტროლის ფარგლებში თქვენი დასტის. OK, მითითებას. ყველა უფლება, ასე ქმნის მითითებას. გახსოვდეთ, ეს მხოლოდ ჩაწერეთ ვარსკვლავი. ასე რომ, რასაც ტიპის მონაცემები, რომ თქვენ აპირებს იყოს მიუთითებს. ასე რომ, ეს იქნება მომცეთ int. ეს იქნება მომცეთ char. ეს იქნება მომცეთ float. ასე რომ, ძირითადად, რასაც გსურთ, რომ მივუთითოთ, ვარსკვლავი, როგორ უნდა განაცხადოს მაჩვენებელი, OK? მაგრამ მაშინ აშკარად იღებს პატარა სახიფათო, როდესაც თქვენ უნდა მომცეთ თუ თქვენ გაქვთ ვარსკვლავი რასაც. ასე რომ დიდი განსხვავება არის როდესაც თქვენ declaring-- ამიტომ ჩვენ უნდა some-- ასე ეს ხდება რაღაც int ვარსკვლავი. ასე რომ ეს არის ზოგიერთი მაჩვენებელი მოუწოდებს x to int, არა? ასე მახსოვს, თუ რას აკეთებს ეს მოუწოდებს სისტემა x. და ეს აპირებს აქვს გარკვეული მისამართი, უფლება? მოდით უბრალოდ, ვამბობთ, რომ ეს არის ჩვენი მისამართი. პოინტერები გამართავს მისამართები. ასე რომ, რა ამ ამბობს, რომ ამ მდებარეობა, ჩვენ შენახვის int. ასე რომ სხვა გზა ჩვენ შეგვიძლია ვიფიქროთ, ეს არის ის, რომ ეს არის რაღაც int. ჩვენ ნამდვილად არ გადასცა არაფერი არ არის, მაგრამ ეს უბრალოდ int. ასე რომ, ჩვენ შეგვიძლია გავაკეთოთ, თუ ჩვენ ვარსკვლავი x შეადგენს 5, ეს ხდება 5, OK? ეს ამბობს წასვლა რასაც x არის მიუთითებს, ასე რომ ამ მისამართზე და ეს უდრის 5. ასე რომ, ჩვენ დაავალოს 5 ამ მისამართზე, არა? და მაშინ, თუ თქვენ ამის გაკეთება, ეს გვაძლევს მისამართი. ეს არის მისამართი ოპერატორს. რა არის მისამართი x? ჩვენ არ ვიცით. ჩვენ არ ენიჭება მისამართზე. შეიძლება ითქვას, რომ ეს some-- ახლა მივეცით ის მისამართი, ასე მისამართი არის 4. და რეალურად, თუ ჩვენ გავლა რაღაც როგორც ეს, ერთგვარი, რაც ჩვენ გავაკეთეთ. ასე მუშაობს მეშვეობით აქ მე ის ეხმარება თუ მიაპყროს პოინტერები. თუ თქვენ თქვენი გამოცდაზე, მე უაღრესად გირჩევთ ხატვის ყუთები. ასე რომ, ეს პირველი, int x უდრის 5. ეს მხოლოდ იმას ნიშნავს, რომ ჩვენ გვაქვს ადგილი მეხსიერებაში, რომელიც 5, არა? და ჩვენს მაგიდასთან აქ გვეუბნება რომ დროს მისამართზე 0x04. და შემდეგ ჩვენ შევქმნით ზოგიერთი მაჩვენებელი. მოდით დაარღვიოს ეს ქვემოთ ერთ დროს. ასე რომ, ეს ქმნის გარკვეულ ყუთი int, არა? ის აპირებს გამართავს ზოგიერთი მისამართი მას. ასე რომ, ეს არის გარკვეული მაჩვენებელი. და ეს ცარცი მართლაც პატარა. ამიტომ, ჩვენ უნდა ზოგიერთი მაჩვენებელი აქ. და ჩვენს მაგიდასთან გვეუბნება რომ არის მისამართი 0x08. ზემოთ. და ჩვენ მინიჭების იგი მისამართი x. გახსოვდეთ, მითითებას გამართავს მისამართები, OK? ასე რომ, თუ ჩვენ გვინდა გაიმართება x, ჩვენ გვაქვს გამოიყენოს მისამართი ოპერატორი, რომელიც არის ampersand, მიიღოს მისამართი x, რომელიც ამ შემთხვევაში, 0x04. და თუ გვაქვს ზოგიერთი int ასლი, ეს მხოლოდ ქმნის ზოგიერთი სხვა ყუთი, რომელიც ფლობს int მოუწოდა ასლი. და თუ ჩვენ დაავალოს, რომ ამას ასე რომ, ეს მითითება მას. ის ამბობს წასვლა რასაც მისამართი მომცეთ ფლობს. მაჩვენებელი ფლობს ამ მისამართზე, ასე რომ ჩვენ გვინდა მეტი აქ, და ვამბობთ, დიახ, რა არის ეს? ეს 5. ასე ასლი ხდება 5. აზრი? რა მოხდება, თუ მე შევეცადე მივანიჭოთ ეს უბრალოდ მაჩვენებელი. რა მაჩვენებელი რეალურად თანაბარი? ეს მხოლოდ იმას, რაც მაჩვენებელი შეიცავს, არა? და მერე რა, თუ მე ეს? რა იქნებოდა გადაწერეთ იყოს ახლა? აუდიტორია: 0x08. ZAMYLA chan: Yep, მისამართი ჩვენს მაჩვენებელი. ნებისმიერი ნაწილი, რომ საჭიროებს ხელახლა ახსნა? ზემოთ. არსებობს ნამდვილად ძალიან გართობა პრობლემა ვიქტორინა ერთი რომ ჩვენ შეგვიძლია გამო, რომ გაძლევთ მეტი პრაქტიკა. ბიჭები გასულ კვირას საიტიდან გითხრათ, რომ ეს არ იყო, რომ ცუდი. ჩვენ შეიჭრა მთელი სქემა, ყველას გააკეთა დიდი. OK, ასე რომ მიმოხილვა სინტაქსი მითითებას. დიდი რამ არის გაგება, თუ როგორ შექმნა მათ, ნუ მითითება, და მისამართი, OK? ზემოთ. ნებისმიერი სხვა თემა, სანამ ჩვენ ჩაყვინთვის შევიდა პრაქტიკაში. ასევე, თუ ჩვენ ვაპირებთ მეშვეობით პრაქტიკა პრობლემები და იქ რაღაც გსურთ ცოდნის გასაახლებლად, ჩვენ შეგვიძლია გავაკეთოთ, რომ ძალიან. გაქვთ რამე? აუდიტორია: Structs და დაკავშირებული სიები. ZAMYLA chan: Structs და დაკავშირებული სიები, OK. ასე structs. ჩვენ რეალურად აპირებს მეტი ამ დღეს ძალიან. OK, ასე რომ structs. Structs ძირითადად უბრალოდ გზა თქვენ გამართავს სხვადასხვა ღირებულებების სხვადასხვა ტიპის. ამრიგად მასივი ვართ constricted ერთი მონაცემების ტიპის. ჩვენი მასივი ან უნდა იყოს მხოლოდ ნომრები, ან მხოლოდ სიმბოლო, ან უბრალოდ იყოს მოძრავი. მაგრამ იქნებ თქვენ უნდა შეიცავს მეტია. შესაძლოა, თქვენ უნდა hold-- თუ თქვენ ვსაუბრობთ სტუდენტი, თქვენ აპირებს აქვს თავისი სახლი, მათი ID ნომერი, მათი ასაკი, სადაც ისინი ცხოვრობენ, არა? და ყველა იმ სხვადასხვა სახის ტიპის. ასე რომ თქვენ არ შეუძლია შეინახოს იმ ყველა მასივი. რა შეგიძლიათ გააკეთოთ თქვენ შეგიძლიათ შექმნათ struct, რომელიც შეგიძლიათ წარმოიდგინოთ, როგორც თქვენი პირადი მონაცემები ტიპის. ასე რომ ნაცვლად მხოლოდ მქონე ints და ნაცვლად მხოლოდ მქონე მოძრავი, თქვენ შეგიძლიათ ტიპი სტუდენტი, ყველა ამ სფეროებში იგი. ასე რომ გზა ჩვენ ინიციალიზაცია ჩვენი structs is-- რეალურად მას შემდეგ, რაც ჩემი წერის საშინელი, ჩვენ ვაპირებთ გადასვლას აკრეფით. Woo. OK, ასე რომ, თუ ჩვენ გვინდა, რომ შეიქმნას struct-- მე უბრალოდ აპირებს ქვემოთ აქ. ტოვებს მთავარ რასაც რომელიც ჩვენ გამოვიყენებთ შემდეგ. ასე რომ გზა გსურთ გააკეთოთ ეს არის typedef struct. და მოდით უბრალოდ დაარქვით სტუდენტი იმიტომ, რომ ის, რაც მე გამოყენებით. OK, ასე რომ typedef ნიშნავს, რომ თქვენ განმსაზღვრელი ახალი ტიპის, OK? არსებობს ნიუანსებს, როდესაც თქვენ აკეთებთ მხოლოდ struct წინააღმდეგ typedef struct. ყველა განცდა მიზნებისათვის, თქვენ ბიჭები არიან მხოლოდ შეითავსებს ისინი დაახლოებით იგივე და მხოლოდ გამოყენება typedef struct ახლა. ეს გავხდებით გზა უფრო აშკარა თქვენს შემდეგი P მითითებული, თუ რა იმ განსხვავებები, მაგრამ მე არ ვფიქრობ, თქვენ უნდა ფიქრი, რომ ახლა. მე ბევრად უფრო თქვენ ვიცი, როგორ უნდა შექმნა, წვდომის, და მივანიჭოთ [? ღირებულება. ?] ახალი ტიპის struct, და ჩვენ მოვუწოდებთ მას სტუდენტი. ასე რომ, შემდეგ ჩვენ გავაკეთეთ შექმნა ეს, ყველა განცდა იმისა, თქვენ მოგიწევთ ტიპის მოუწოდა სტუდენტი. და თქვენ შეგიძლიათ ვფიქრობ, რომ ისევე, როგორც ტიპი როგორც int ან ათწილადი ან char. ეს არის კიდევ ერთი ტიპის, OK? ასე რომ, ამ ერთი, რა გვაქვს? ჩვენ გვაქვს, შესაძლოა, სახელი. იქნებ ჩვენ გვინდა სიმებიანი სახელი. და ჩვენ გვაქვს იქნებ int რომ პირადობის მოწმობა. და ჩვენ გვაქვს მეორე ეს არის ის, ტელეფონის ნომერი. და ჩვენ some-- ვნახოთ. რა შეიძლება გვქონდეს? ჩვენ გვექნება გარკვეული string თავის სახლში. ყველა რამ, რომ სტუდენტმა. ასე რომ, ეს ქმნის struct ახლა. ასე როგორ შეიძლება ჩვენ შევქმნათ სტუდენტი? თუ ჩვენ გვაქვს რამდენიმე ცვლადს, რომელიც ვისაუბრებთ Walker აქ ასე რომ, ჩვენ ჰქონდეს ჩვენ უბრალოდ ვაპირებ მოვუწოდო ამ walker. მას სჭირდება ტიპის. რა არის თქვენი ტიპის? აუდიტორია: Student. ZAMYLA chan: Student. ასე რომ, ეს უბრალოდ ქმნის ობიექტს შეგიძლიათ ვფიქრობ, რომ აქვს ეს ყველაფერი. თქვენ შევქმენით walker სტუდენტი. ასე რომ, ახლა ჩვენ უნდა შეეძლოს დაავალოს ეს ყველაფერი, არა? ასე რომ ვინმეს ახსოვს, თუ როგორ ჩვენ შედიხართ ფარგლებში struct? აუდიტორია: პერიოდი. ZAMYLA chan: პერიოდი ზუსტად. ასე რომ, თუ გვინდოდა, რომ დაავალოს მას სახელი, ჩვენ შეგვიძლია ამის გაკეთება. ცხადია, ამ შემთხვევაში be-- ეს ნაწილი აქ იქნება იყოს შიგნით ძირითადი, ისე მოდით გავაკეთოთ ეს. ვაცხადებ ზემოთ ძირითადი, ისე რომ ჩვენ შეგვიძლია გამოვიყენოთ რომ მთავარი. ახლა მინდა, რომ ამის გაკეთება ID, და ჩვენ უბრალოდ რაღაც არსებობს, და მაშინ ჩვენ მივანიჭოთ სახლი. Bam. ზემოთ. ასე რომ, ახლა უნდა ოდესმე უნდა ხელმისაწვდომობის არაფერი შემდეგ on-- იქნებ we-- თუ ჩვენ ოდესმე უნდა თქვათ არაფერი, მოდით უბრალოდ int ასლი ID. და მინდა ასლი ვოკერი ID ამ. როგორ შეიძლება ამის გაკეთება? თქვენ უნდა შედიხართ ფარგლებში walker struct რომ [? წასვლა რომ?] [? E?]. და ისევე, რომ ჩვენ დანიშნული აქ, როგორ შეიძლება თქვათ, რომ როდესაც ჩვენ გვინდა მისცეს, რომ არც რაღაც? აუდიტორია: Walker.id. ZAMYLA chan: ჰო, ზუსტად. ასე რომ, საკმაოდ ბევრი ყველა თქვენ უნდა იცოდეს, structs. თქვენ უბრალოდ უნდა ვიფიქროთ, მათ, როგორც ერთი ცვლადი. ძირითადად შექმნათ თქვენი საკუთარი ცვლადი ტიპის, OK? თქვენ გამოიყენოს იგი განაცხადოს ცვლადები არანაირად. აქ walker მაინც განსხვავებულია. უბრალოდ აქვს ტიპის სტუდენტი ახლა ნაცვლად ტიპის int, ან ტიპის ტექსტი, ან ტიპის char. თუ არ იყო მარტივი გზა, რათა გაიგო შესახებ structs, ეს არის ფაქტიურად მხოლოდ შექმნათ თქვენი საკუთარი მონაცემები ტიპის რომელიც საშუალებას გაძლევთ ჯგუფი ყველა ეს სხვადასხვა სახის მონაცემები ერთად. ამჯამად რომ აზრი? OK. რომ და წვდომის წერტილები. საკმაოდ ბევრი გჭირდებათ. OK, სადაც არც ჩემი PowerPoint წავიდეთ? აი, ეს არის. ისე ეს არის უცნაური. Aha. OK, ზემოთ. ნებისმიერი სხვა რამ, თუ ჩვენ გსურთ უხელმძღვანელებს პრაქტიკაში? პრაქტიკაში? OK. გასაოცარია. მე ვაპირებ გაითიშება ამ. თუ ნებისმიერ დროს პრაქტიკა შეკითხვები, მოხარული ვარ, რომ განახლებას და გავლა რამ. ასე რომ, მე ვიქტორინა ნულოვანი აქ. თუ ბიჭები სურს გაიყვანოს ეს თქვენს კომპიუტერში, უბრალოდ მინდა ხუთ წუთი დაათვალიეროთ მეშვეობით. იქნებ ზოგიერთი ყველაზე კითხვები თქვენ მინდა წასვლა. თუ ბიჭები ვერ გადაწყვეტს, ჩვენ უბრალოდ ნელა დაიწყოს მუშაობა მეშვეობით, მაგრამ დარწმუნებული ვარ, იქ იქნება გარკვეული კითხვები, რომ თქვენ განსაკუთრებით მოწადინებული გაიგო და ჩემთვის მუშაობა მეშვეობით თქვენ ყველა. ასე რომ, უბრალოდ წავიდეთ წინ და მიიღოს ხუთი წუთის განმავლობაში. გადახვევა მეშვეობით. და ეს ვიქტორინა 2013 წლიდან. აუდიტორია: Zero? ZAMYLA chan: ჰო, ვიქტორინა ნულოვანი. ჩვენ არ ვაკეთებთ ვიქტორინა ერთი პერსონალი. ჩვენ ყველაფერს გავაკეთებთ, რომ რამდენიმე კვირის განმავლობაში. ასევე, იმ თქვენ, რომლებიც მოვიდა გვიან, ჩვენ გვაქვს candy, ასე რომ თქვენ ბიჭები მინდა candy? აუდიტორია: რა თქმა უნდა. ZAMYLA chan: მე მხოლოდ აპირებს გაიაროს გარშემო. Hey, თუ ბიჭები მისაღებად აქ დასაწყისში, თქვენ მიიღოთ მეტი candy. ეს ჯარიმა. Ben, გსურთ candy? გსურთ ზოგიერთი? არსებობს ასევე Snickers თუ ვინმეს სურს Snickers. მე დავტოვებთ აქ და აქ. Feel free. გინდათ აღარ? აუდიტორია: ყველა კომპლექტი. მადლობა. ZAMYLA chan: და მე ლამაზი პატარა pile დასაწყისში. თქვენ ბიჭები მისაღებად მიიღოს ვიქტორინაში და მე კიდევ აქვს ინტელექტუალური შეფასების პარტია. ეს ქაოსი. 900 გამოცდები. ეს იქნება იმდენად fun. იქნება დიდი. მე პირადად დარწმუნებული ვარ, რომ ერთი ყველაზე დიდი პერსონალი შემაკავშირებელ ღამე წელიწადში. უკვე არავის გაკეთდეს ვიქტორინა ნულოვანი საწყისი გასულ წელს ჯერ კიდევ გარეთ ცნობისმოყვარეობა? აუდიტორია: ნაწილები. ZAMYLA chan: ნაწილები, OK. არც თქვენ გაქვთ შეკითხვები ან რომელიმე მათგანი? აუდიტორია: მე უკვე წავიდა საათებში. დიდი მადლობა, თუმცა. ZAMYLA chan: კარგად, იმედია ეს ჯერ კიდევ სახის სასარგებლო. როდის წავიდეთ სამუშაო საათებში რომ? აუდიტორია: ჩემი TF ჰქონდათ დღის მეორე ნახევარში. ZAMYLA chan: Oh. ვინ არის თქვენი TF? აუდიტორია: Fred [? Wujaya?]. ZAMYLA chan: იმდენი TFs. ამდენი. ყველა უფლება. ვინმეს აქვს რაიმე უნდა დაიწყოს, რომ მე არ შემიძლია jot ქვემოთ, რომ ჩვენ გვინდა მუშაობა? მე ვივარაუდოთ, მითითებას ერთი მაგიდა. წავიდეთ ეს. აუდიტორია: იქნებ switch ერთი. ALLISON BUCHHOLTZ-AU: ასე რომ ხმების 12? მე ვივარაუდოთ, ნომერი 8 და 9, ალბათ, ვინც ხალხს სურს წასვლა. აუდიტორია: 10 და 11. ZAMYLA chan: და შენ ვიცით, თქვენ ერთი გვერდს, არა? აუდიტორია: ჰო, ისე რა ჩვენ დაშვებული დააყენა, რომ. ZAMYLA chan: თქვენ საშუალება იმისათვის, რომ არაფერი გსურთ. და ეს შეიძლება იყოს აკრეფილი. რამდენადაც მახსოვს, ჩვენი აკრეფილი. აუდიტორია: თქვენ შეგიძლიათ ეს გააკეთოთ და უკან ორივე მხარეს? ZAMYLA chan: ჰო, ორივე მხარეს. ასე რომ რაღაც ბევრი და [? უკან ბოლომდე?] ბევრი, გაშვებული ჯერ. სასარგებლო. იქნებ ცოტა რამ პოინტერები შეგახსენოთ. სინტაქსი რამ. რომელსაც, ისევე, როგორც ჩონჩხი პროგრამა შეიძლება სუპერ სასარგებლო. მე ვიცი, რომ მე ყოველთვის დაავიწყდა ზუსტად რა მე უნდა დაწეროს int ძირითადი რადგან მე ყოველთვის გადააკოპირეთ ჩასვით ჩემი წინა P კომპლექტი ან უკვე არსებობს, ამიტომ მე არასოდეს ნამდვილად წერდა, ასე რომ, რომ შეიძლება სუპერ სასარგებლო. OK, ასე რომ რატომ არ ჩვენ იწყება ნომერი 8 მაშინ? ყველა უფლება. OK. ამიტომ მიგვაჩნია, რომ პროგრამა ქვემოთ. ამიტომ ცხადია, რომ როდესაც ჩვენ ვხედავთ, მითითებები, ეს, ალბათ, კარგი იდეა დავიწყოთ, არა? მინდა იცოდეს, სადაც ყველა ჩემი დიდი ცალი ცარცი წავიდა. ეს არის ერთგვარი შემაშფოთებელი. ასე რომ, ჩვენ გვაქვს გარკვეული swap ფუნქცია რომ აპირებს ორ მითითებას. ასე რომ, ამ შემთხვევაში, მათ რეალურად უნდა იყოს გადართვის რამ წინააღმდეგ ჩვენი ორიგინალური swap ფუნქცია, რომელიც მხოლოდ მიიღო ასლი. ასე თუ რას აპირებს, is-- დავიწყოთ ძირითადი, იმიტომ, რომ სადაც 1 არის. ასე, რომ ჩვენ გვაქვს int x 1. ჩვენ გვაქვს გარკვეული y, რომ ეს უდრის 2. და მაშინ ჩვენ გვაქვს swap რომ აპირებს იმ. და ვნახოთ, რა გვაქვს აქ. და ჩვენი table-- OH ბიჭი. როგორ ვარ მე ვაპირებ ამის გაკეთება? მე ვაპირებ, რომ ჩემი მაგიდა აქ. ძლივს მიღების არსებობს. ძლივს გახადა. 1, 2, 3, 4, 5, 6, 7. და მათ მოგვცეს, რომ 1 1 და 1 2. ზემოთ. გასაოცარია. ასე 3. და იქ [? 1.?] ყველა უფლება. და მაშინ მისამართი x არის 0x123. და y არის Ox127. ზემოთ. ყველა უფლება. მინდა ბიჭებს მუშაობა ამ მხოლოდ მოსწონს მუშაობა ერთად გარშემო. მე მინდა მე განაცხადა, რომ ხოლო მე შექმნის. მუშაობა. ცდილობენ და მუშაობა მასზე თავი რამდენიმე წუთი, და მერე იმუშავებს თქვენთან ერთად. რადგან ერთადერთი გზა თქვენ ნამდვილად ისწავლით არის აკეთებს ამას თავს. არ შფოთვა. წარმატებებს გისურვებთ. OK, რატომ არ გვაქვს ნელა დაიწყოს მუშაობა ამ. ასე რომ, ყველას იღებს შემდეგ ხაზი, ერთი, x არის 1. შემდეგ ხაზი ორი, x და y არის 1 და 2, არა? ზემოთ. ამიტომ ხაზი სამი, სადაც ყველაფერი საინტერესო რა თქმა უნდა. ამიტომ, რაც ჩვენ გავაკეთეთ აქ ეს ჩვენ ახლა გაცვალეს. ჩვენ ვამბობთ, რომ x და y აქვს იმ რაოდენობა, ან მათ მისამართი x და y, არა? ასე რომ, ამ შემთხვევაში, სამი, რა არის ღირებულება? უკვე გავიდა, უკვე მიეცა ღირებულება მისამართი x, არა? აუდიტორია: 1? ALLISON BUCHHOLTZ-AU: ასე რომ, ჩვენ დაამატოთ ეს x? რა არის x მისამართი? აუდიტორია: 0x123. ZAMYLA chan: ზუსტად. მაგრამ რა არის რეალურად მიუთითებს? თუ ჩვენ dereference, რა მნიშვნელობა იქნება ეს მოგვცემს. აუდიტორია: 1. ZAMYLA chan: ეს იქნებოდა მოგვცეს 1, რადგან რა ჩვენ ვამბობთ, არის წასვლა ეს მისამართი, გვითხრათ რა ღირებულება. ასე რომ, რა იქნება B? აუდიტორია: 0x127. ZAMYLA chan: ზუსტად. ასე რომ, მისამართი შ. და მერე რა [? dereference? ?] აუდიტორია: 2. ZAMYLA chan: OK, ასე რომ, ახლა ოთხი. ჩვენ ვთქვით, რომ არის equal-- კარგად არის, რომ ჩვენ კეთდება int temp ტოლია ვარსკვლავი. ასე რომ, რა იცვლება? არსებობს მხოლოდ ერთი რამ, რომელიც ცვლის აქ. რა არის ეს? აუდიტორია: Temp. ZAMYLA chan: temp. ასე რომ, ჩვენ შეგვიძლია გადაწერა ეს ყველაფერი. კარგი სტრატეგია ამ მხოლოდ მჭიდროდაა გარეთ რა ცვლილებებს იმიტომ, რომ ყველაზე ხშირად არსებობს მხოლოდ ერთი რამ, რომ აპირებს შეცვალოს ნებისმიერ წერტილში, OK? ასე რომ, ჩვენ დანიშნული temp. ახლა ჩვენი მომდევნო ეტაპზე, ხუთი, ჩვენ არ გააკეთა ვარსკვლავი ტოლია ვარსკვლავი ბ. ასე რომ, რა ცვლილებები არის? აუდიტორია: ვარსკვლავი. ZAMYLA chan: ვარსკვლავი, ასე რომ ყველაფერი რჩება იგივე. და რას ვარსკვლავი თანაბარი? აუდიტორია: 2. ZAMYLA chan: 2. ლამაზი. გასაოცარია. OK, მაშინ ახლა ჩვენ გვაქვს დაიწყოს b = temp. ამიტომ ერთადერთი, რაც იცვლება არის ვარსკვლავი ბ. ყველაფერი, რჩება იგივე. და რა არის ვარსკვლავი ბ ტოლი ახლა? და თქვენ დასრულდა მაგიდასთან. რადგან ახლა ბოლოს, თუ ვიტყვით x და y, ჩვენ ვიცით, რომ ამ point-- ჩვენ ვიცით, რომ როდესაც ჩვენ ცვლილება ვარსკვლავი 2, რა, რომ არ არის ის დამთანხმდა, at მიმართოს 0x123 აქ, შეცვლის. ახლა ეს იყო 2. და მაშინ ამ ეტაპზე, ჩვენ ვთქვით, OK, წასვლა ვარსკვლავი ბ. ასე რომ მიმართვა 0x127 და ეს 1. ასე რომ, ახლა ძალიან დასრულდება, როდესაც ჩვენ რეალურად დაბრუნებას მთავარი, ჩვენ რეალურად უნდა, რომ x არის უდრის 2 და y = 1. ყველას კარგი რომ? OK, ზემოთ. ნომერი 9. თქვენ ბიჭები მუშაობენ. მე ვაპირებ, რომ შეიქმნას საბჭო ასე რომ, ჩვენ შეგვიძლია დავხატოთ მეშვეობით. ეს იქნება აფეთქება. დიდი მაგიდები შეიძლება იყოს მართლაც საშინელი, მე ვიცი. მაგრამ თუ უბრალოდ მათ ერთი რიგის დროს, ისინი კიდევ ბევრი ნაკლებად საშიში. ყველა უფლება. ასე რომ თქვენ იცით, რომ ეს გაიარა მთავარ პირველი, არა? ველში X და Y და შემდეგ ცდილობს სვოპ მათ. ისე კი swap მაღლა, რეალური გზა ის მიდის, რომ ჩვენ ვაპირებთ მეშვეობით მთავარი, და მაშინ ის მოუწოდებს მდე სვოპ, ყველა უფლება? ისე ყველამ იცის, რომ. ასე რომელი გაქვთ ბიჭებს სურთ, რომ დაიწყოს? არის ვინმე ნამდვილად დარწმუნებული ვარ, ერთ-ერთი ეს? თუნდაც ნაწილობრივ დარწმუნებული? რატომ არ იწყება x? რას ვფიქრობთ x არის? აუდიტორია: 1. ZAMYLA chan: 1. ასეა, მაშინ რატომ არის 2. და ეს იმიტომ, რომ დიდი განსხვავება აქ არის, რომ ჩვენ მხოლოდ ჩაბარების ასლი, არა? ჩვენ არ გადადის მითითება. ისე კი, ბოლოს ამ პროგრამის x და y არ დარჩა იგივე, რადგან ისინი არის მხოლოდ ასლი swap ფუნქცია. ისინი რეალურად არ შეიცვლება, არა? ასე რომ რაც შეეხება a, b, და temp? აუდიტორია: ბ. ZAMYLA chan: ბ. ასე რომ, ამ შემთხვევაში, იყო x, 1, არა? ასე რომ, აქ, მოდით გავლა იგი. ამიტომ დასაწყისში, და ბ არის 1 და 2 და გაურკვეველია. ასე თავდაპირველად temp იღებს ენიჭება, ასე Temp არის 1. უდრის ბ, მივიღებთ 2 და b = temp. ახლა ჩვენ 1. აუდიტორია: In წინა it გაცვალეს ampersand x და ampersand y. რას ნიშნავს ეს? ALLISON BUCHHOLTZ-AU: ასე რომ, იმას ნიშნავს, რომ თქვენ ავლით მითითება. ეს კი იმას ნიშნავს, რომ თქვენ რეალურად გავლის მისამართები, სადაც x და y ინახება. აუდიტორია: მაგრამ თქვენ არ შევცვალე მისამართზე. ZAMYLA chan: თქვენ არ შევცვალე მისამართები. თქვენ შევცვალე რა არის მათში. მოსწონს რა, რომ მისამართი, და ამიტომაც ის მუშაობს. წინააღმდეგ ამ პროგრამის აქ რა რას აკეთებს, თქვენ შექმნით ასლები. ასე რომ თქვენ გაქვთ x და y, რომ არსებობს როგორც საკუთარი ცვლადების აქ. მაგრამ მაშინ, როცა გაივლის მათ swap, ეს თითქოს თქვენ შექმნით მთელი ეს სულ სხვა. ასე რომ თქვენ არასოდეს რეალურად ეხება x და y. აუდიტორია: თუ ampersand x არის ის, რაც არის მისამართი x, რას ვარსკვლავი x იყოს? ZAMYLA chan: Ampersand x არის რა დროს მისამართი x, მაშინ star-- კარგად, ამ შემთხვევაში, x არ არის მაჩვენებელი. აუდიტორია: Oh, OK. ასე რომ თქვენ მხოლოდ ამის გაკეთება იმიტომ, რომ ეს არ მომცეთ. ZAMYLA chan: Right. თქვენ შეგიძლიათ მხოლოდ ვარსკვლავი რომ რაღაც მაჩვენებელი. იქნებ თქვენ ეს იმას, არ არის, მაგრამ კომპილირების, რომ თქვენ გავაკეთოთ, რომ გიჟები რამ მოხდებოდა. და მე არ ვარ ზუსტად დარწმუნებული ვარ, რა მოხდებოდა. თქვენ ყოველთვის შეგიძლიათ მიიღოს მისამართი რამე, მაგრამ თქვენ არ შეგიძლიათ dereference რაღაც რომ არ მომცეთ. თუ ეს აზრი, რომ კარგი განსხვავება აქვს. ასე რომ არც ისე ცუდია, არა? მაგიდები იმედია მიღების ოდნავ ნაკლებად საშინელი. ყველა უფლება. Ah, გართობა მიიჩნიეს. ასე რომ, ახლა, წერა თქვენი საკუთარი კოდი. ამიტომ, მე ვაპირებ მოგცემთ ბიჭები მუშაობა ამ დაახლოებით ოთხი წუთი, და მაშინ შეიძლება ვისაუბროთ გზები მივუდგეთ მას. თავისუფლად თქვენს გარშემო. ასევე, ეს არის საინტერესო. ეს როგორც ყველა გოგონა სექცია ახლავე. საკმაოდ საინტერესო. გარდა Chang. მაგრამ Chang ნამდვილად არ არის ნაწილი მონაკვეთზე. გასაოცარია. სრულყოფილი. ასე რომ, მე მივცემ თქვენ რამდენიმე მინიშნებები. იმ შემთხვევაში, თუ თქვენ გაქვთ მეტი ხასიათი, სადაც თქვენ უნდა რაღაც ისევე როგორც 123 ან 1000 რაღაც, თქვენ უნდა შეძლებს loop მეშვეობით და დააკონვერტიროთ თითოეული იმ. ასე რომ, არსებობს რამდენიმე გზები თქვენ შეიძლება გავაკეთოთ, რომ, მაგრამ თქვენ ნამდვილად აქვს ამისთვის მარყუჟის სადღაც იქ loop მათი მეშვეობით, რომელიც სახის, როგორიცაა giveaway მაშინაც კი, თუ თქვენ მოვუწოდებ strlen, რომელიც არის სახის მოსწონს oh იქნებ გსურთ გამოიყენოთ სიგრძე სიმებიანი რამდენიმე გზა. ყველა უფლება. ასე რომ, რას ბიჭები ვფიქრობ, შესაძლოა, ერთ-ერთი პირველი, რასაც ჩვენ უნდა გავაკეთოთ? არსებობს რამდენიმე შემთხვევა, აქ ჩვენ უნდა ანგარიშზე, არა? ან ჩვენ უნდა რაღაც რომ null. რა გვაქვს? შემთხვევაში. Null. ჩვენ გვაქვს საქმე, რომ მას აქვს რაღაც გარდა 09, არა? ასე ვთქვათ, მას აქვს წერილებს. ან ჩვენ გვაქვს საქმე, რომელიც მოქმედებს. სამი შემთხვევა, რომ ვფიქრობ. ასე რომელი ფიქრობთ, შესაძლოა, იოლი ერთი იზრუნოს პირველი? აუდიტორია: Null. ZAMYLA chan: საქმე ის არის, null. ასე რომ, რა გავაკეთოთ იქ? აუდიტორია: [INAUDIBLE]. ZAMYLA chan: ჰო. და რა უნდა გავაკეთოთ? აუდიტორია: დაბრუნება 0. ZAMYLA chan: ზუსტად. გასაოცარია. OK. ასე რომ, ახლა საქმე, რომ მას აქვს წერილები და იმ შემთხვევაში თუ იგი მოქმედებს. ჩვენ შეგვიძლია რეალურად იზრუნოს ამ დღიდან ერთი loop, OK? ასე რომ, ერთი გზა გააკეთებს ეს რა შეიძლება იყოს მარტივი გზა, რათა შეამოწმოს, თუ ის მართებული. ჩვენ უნდა გაიაროს თითოეული წერილი და რა? აუდიტორია: შეამოწმეთ თუ in-- ZAMYLA chan: მარჯვენა, თქვენ შეგიძლიათ შეამოწმოთ თუ ის 0-დან 9, არა? და მაშინ, იმ შემთხვევაში, რომ ეს მოქმედებს, ჩვენ აპირებს დასრულდება მდე iterating მეშვეობით ჩვენი სიმებიანი მაინც, არა? რატომ არ ვცდილობთ, აერთიანებს მათ ერთ. ჩვენ ვაპირებთ iterate მთელი ტექსტი, და, როგორც ჩვენ გავაკეთოთ, რომ, ჩვენ ვაპირებთ, რომ პირველი გავაკეთოთ შეამოწმეთ თუ, რომ წერილი ან თუ ეს ხასიათი მოქმედებს. თუ ეს არ არის, ჩვენ ვაპირებთ, რომ შეასრულოს ოპერაცია, რომ ჩვენ უნდა გარდაქმნას იგი. წინააღმდეგ შემთხვევაში, ეს კიდე დაბრუნდება 0, არა? ასე რომ სანამ ჩვენ გავაკეთოთ, რომ ჩვენ ალბათ, მინდა რამდენიმე ცვლადი რომ ჩვენ შეგვიძლია დაბრუნდეს ბოლოს რომ იქნება ჩვენი რეალური ღირებულება. ამიტომ, ჩვენ ვაპირებთ ინიციალიზაცია გარკვეული მნიშვნელობა უნდა იყოს 0. და ეს მხოლოდ როგორ დაიწყოს. ამიტომ, მე ვაპირებ, თავი დაეღწია ამ. ასე რომ, როგორ ვაპირებთ iterate მეშვეობით ამ სიმებიანი. აუდიტორია: For loop. ZAMYLA chan: A for loop. რა არის ჩვენი ამისთვის? აუდიტორია: მე არის 0. ZAMYLA chan: Mm-hm. და რა ჩვენ iterating სანამ? აუდიტორია: ქ სიგრძით s. ZAMYLA chan: OK, ახლა მახსოვს, არსებობს უკეთესი გზა. [INAUDIBLE]. აუდიტორია: Yeah, ჩვენ შეგვიძლია გავაკეთოთ n უდრის. ZAMYLA chan: ზუსტად. აუდიტორია: i ნაკლებია, ვიდრე n. ZAMYLA chan: რატომ გვინდა გავაკეთოთ, რომ? გახსოვთ ამის მიზეზი? აუდიტორია: ჩვენ დაანგარიშებაც იგი. ZAMYLA chan: becasue ამ გზით თქვენ მხოლოდ უნდა გამოვთვალოთ strlen ერთხელ. თუ შემიძლია ნაკლებია, ვიდრე strlen s, რომ ნიშნავს, რომ იგი ხელახლა ითვლის ხანგრძლივობა ყოველ ჯერზე თქვენ აწარმოებს მარყუჟის, რომელიც არ არის დიდი ღირებულება ენერგია, მაგრამ ეს უკეთესი პრაქტიკის ცდილობენ და რამ, როგორიცაა, რომ ერთხელ. იმ შემთხვევაში, თუ იქნებ გიჟები string რომ იცვლება ყოველ iteration. მაგრამ თუ ეს დარჩენის იგივე, იხსნის მას. ყველა უფლება. და მერე plus plus. გასაოცარია. ჩვენ ვართ ჩვენი გზა. აუდიტორია: მართლაც სწრაფად. პირველი, ასე ვთქვათ, მხოლოდ არც მე ნაკლები strlen of s, ისინი შეფასების us on დიზაინი გარეშე ან სისწორის? ისინი არ. ჩვენ შეფასების მართებულობაზე ვიქტორინების, რამდენადაც მე ვიცი. მე არ შემიძლია, სრული გარანტია, მაგრამ იმ ნაწილს, დიდი უმრავლესობა არის სისწორე, რადგან თქვენ ქვეშ ბევრი დრო შეზღუდვა. დიზაინი, როგორც წესი, იმას ნიშნავს, თქვენ გაქვთ დრო, რომ ვიფიქროთ შესახებ ელეგანტურობა თქვენი სიტუაცია. OK, ასე რომ, ჩვენ iterating მეშვეობით. ამიტომ, ჩვენ უნდა შეგიძლიათ შეამოწმოთ, თუ ეს ხასიათი მოქმედებს თუ ჩვენ შეგვიძლია ვაკეთოთ ნორმალური [? რომ მე?] ფუნქცია. ჩვენ შეგვიძლია ფიქრი რა რომ არის მეორე. რატომ არ ჩვენ take-- თუ ვინმეს შეგიძლიათ ვფიქრობ, დაახლოებით ისე შეამოწმოთ თუ ეს მოქმედებს. ჩვენ ვიცით, ეს იქნება ზოგიერთი, თუ მდგომარეობა, არა? და მახსოვს ეს ASCII, ასე როგორ შეიძლება ჩვენ ვხედავთ, თუ ეს არ არის 0,1, 2, 3, 4, 5, 6, 7, 8, ან 9. აუდიტორია: თუ alpha. ALLISON BUCHHOLTZ-AU: ასე რომ, თუ alpha გვინდა მხოლოდ შეგვატყობინოთ თუ ის წერილი. და თუ მათ მოგვცეს სიმბოლო, ეს ჯერ კიდევ არ არის საკმაოდ აპირებს შეამოწმოს. ასე რომ, თუ თქვენ გაიყვანოს თქვენი ASCII მაგიდა, ჩვენ ვიცით, რომ 0-დან 9 ერთ სეგმენტს. მითხრათ ციფრები, რომ მათ შეესაბამება თუ ეს შესაძლებელია. აუდიტორია: 40. ALLISON BUCHHOLTZ-AU: ასე სპექტრი, როგორიცაა 40-- აუდიტორია: იქნებ. 48-დან 57. მე არ ვარ დარწმუნებული. ZAMYLA chan: 40-დან 57? აუდიტორია: 48, მე ვფიქრობ. ZAMYLA chan: 48 57. ასე რომ, ჩვენ ვიცით, რომ ეს ASCII ნიშნები, თუ ASCII ღირებულება არ არის შორის 48 და 57, ეს არ არის სწორი, არა? ასე შეგვიძლია გამოვიყენოთ, რომ ჩვენი უპირატესობა შესაძლოა? როგორ მივდივართ მისაღებად ეს წერილი, პირველ რიგში? რას წვდომის ეს ეს პერსონაჟი? აუდიტორია: s bracket i. ZAMYLA chan: Mm-hm. იმიტომ, რომ ჩვენ შეგვიძლია ვიფიქროთ, სიმები როგორც კოლექტორები, მახსოვს. ასე რომ, რას ჩვენ მინდა ვთქვა? ჩვენ გვინდა ვთქვათ, თუ ეს is-- მე გიპასუხოთ. ეს ნაკლები. რა ფიქრობთ, რომ ეს უნდა იყოს ნაკლები? აუდიტორია: 57? ZAMYLA chan: 47, არა? მაგრამ ის, რომ, როგორც თქვენ 0 ერთი [? პრესსპიკერმა?], იმიტომ, რომ ხასიათი 0. თქვენ შეიძლება ასევე დააყენა 47. რომელსაც ASCII მაგიდა, ხედავთ, არის რაღაც თქვენ უნდა ჰქონდეს თქვენს ვიქტორინა ფურცელი. ასე რომ, თუ ეს იმ შემთხვევაში, თუ ის ნაკლებია, ვიდრე 0- არ არის აუცილებელი და. ეს მხოლოდ ან იქნება ნაკლები ან მეტი, ვიდრე 9. ასე რომ, შეგიძლიათ შეავსოთ ეს ბოლო ჩემთვის? ასე და ის მე არის რა, Rhea? აუდიტორია: მეტი 9. ALLISON BUCHHOLTZ-AU არსებობს. ამჯამად რომ აზრი ყველას, როგორ მოვხვდით? ეს პრობლემა, ისინი მოსწონს კიდევ იხილეთ გადაწყვეტილებები, ეს როგორც oh, OK. და ამიტომ პრაქტიკაში დაგეხმარებათ. OK, ასე რომ ჩვენ დაბრუნების 0. ლამაზი. ყველა უფლება. წინააღმდეგ შემთხვევაში, რა გვინდა გავაკეთოთ? ეს არის საინტერესო სადაც ეს ცოტა მეტი როგორიცაა მათემატიკის წინააღმდეგ CS ჩემი აზრით. ვინმეს აქვს იდეა როგორ შეიძლება ამის გაკეთება? ასე რომ, მთავარია, გააცნობიეროს ეს არის პირველი სიმბოლო ჩვენ აღების იქნება უმაღლესი მიზნით ციფრი, არა? ასე რომ, თუ ჩვენ შევხედავთ კონვერტაცია 123, პირველად ჩვენ iterate იქნება 1, მაგრამ ჩვენ გვჭირდება რომ 100 წლის ბოლოს, არა? ასე რომ ერთი რამ შეგიძლიათ გააკეთოთ არის ის, რომ ყველა მომდევნო ციფრი თქვენ, თქვენ გამრავლების თქვენი ღირებულების 10 ასე რომ, ახლა თქვენ მივაღწიოთ ბოლოს, ყველაფერი გადავიდა ზემოთ, არა? ასე რომ პირველად თქვენ აწარმოებს მას, თქვენ გაქვთ 1, როგორც თქვენი ღირებულება. მეორედ აწარმოებს, გამრავლების თქვენი ღირებულება 10. ეს განახლება, ასე რომ ახლა 10, და თქვენ დაამატოთ თქვენი მომავალი ღირებულება. და მაშინ გავამრავლოთ 10 და დაემატოს შემდეგი მნიშვნელობა. და სწორედ ამიტომ ამბობენ, ბევრად უფრო როგორიცაა ტესტირება მათემატიკის ალგორითმი წინააღმდეგ CS, მაგრამ მე digress. მე არ წერენ ტესტები. ასე რომ ერთი რამ შეგვიძლია გავაკეთოთ არის ჩვენ ამბობენ, არც ჯერ შეადგენს 10. ასე რომ, ეს აპირებს გადაეტანა თქვენი ციფრი ერთხელ დრო. და მაშინ ჩვენ უბრალოდ გსურთ დაამატოთ. ჩვენ გვსურს, რომ რა ჩვენ უბრალოდ მიიღო, არა? ასე რომ, ჩვენ რეალურად გადაიყვანოთ ჩვენი ASCII ხასიათი ნომერი რომ იგი წარმოადგენს? ჩვენ ვიცით, რომ 0-ის ტოლია 47, არა? ასე რომ, თუ არის 0 47 რა რომ ჩვენ უნდა გავაკეთოთ ის იმისათვის, რომ რეალურად ეს იქნება int 0? აუდიტორია: ეს 48. ZAMYLA chan: 48? უკაცრავად. ჩვენ გვინდა გამოვაკლოთ 48, არა? დამახსოვრება ASCII მათემატიკის? ჩვენ შეგვიძლია მკურნალობა მათ მხოლოდ როგორიცაა ჩვეულებრივი ნომრები. თუ მკურნალობა, მათ ნომრები, ისინი გახდებიან რიცხვები ეფექტურად. ასე რომ, თუ ჩვენ გვაქვს s i, რომელიც მოდით ამბობენ, რომ ამ შემთხვევაში 0-ის ტოლი. ამიტომ, მე ამ შემთხვევაში იქნება ASCII-- ASCII int ეს იქნება 47. ამიტომ ვერ subtract-- ან 48. თქვენ შეიძლება გავაკეთოთ, რომ, ერთი გზა. ვინმეს ვიცი უკეთესი გზა ჩვენ შეგვიძლია გავაკეთოთ 48? ჩვენ უბრალოდ თქვა 0 is-- წასვლას ASCII თქვენ ამის გაკეთება ციტირება 0. ასე რომ, ჯერ ეს სახის გააკეთოს გრძნობა, როგორ მუშაობს ეს? აუდიტორია: ამ ეტაპზე, ღირებულება 0 იმიტომ, რომ მაშინაც კი, თუ თქვენ გავამრავლოთ ის მიერ 10 თქვენ დაწყებული out ნულოვანი, ასე უნდა იყოს ჩართული? ALLISON BUCHHOLTZ-AU: ასე რომ, ამ შემთხვევაში, თქვენ გვინდა გავამრავლოთ იგი სანამ დაამატოთ, რადგან ამ შემთხვევაში, დიახ, ეს იქნებოდა ჯერ be-- ჩემი კურსორი არის დაკარგული. ღირებულება ამ შემთხვევაში, პირველი დროს, ჩვენ აწარმოებს ეს იქნება ნულოვანი. ასე რომ თქვენ მხოლოდ დასძინა რომ პირველი ციფრი. მნიშვნელოვანი ის არის, რომ მომავალი დრო თქვენ iterate, გსურთ გადაიტანოს ეს სანამ დაამატოთ თქვენი მომავალი ციფრი შესახებ. ამჯამად რომ განვმარტო თქვენთვის? OK. ზოგჯერ თქვენ აპირებს მიიღებთ უცნაური უფრო mathy რამ. თუ თქვენ დომინირებდა ამ, თქვენ მაინც გეგმავს to get-- თქვენ აპირებს ამის გაკეთება კარგად. ნაწილობრივი საკრედიტო არის ძალიან დიდი რამ CS50 ტესტები. ასე წერენ რა იცით. თუ თქვენ გაქვთ ყველაფერი გარდა აქ, თქვენ კვლავ აპირებს ნამდვილად კარგად პრობლემა. იმიტომ, რომ თქვენ აჩვენებს, OK, მე თითქმის არ ვიცი. მე ვიცი, რომ უნდა iterate მეშვეობით. მე ვიცი, რა უნდა შეამოწმოს. მე უბრალოდ არ საკმაოდ მიიღეთ თუ როგორ უნდა გარდაქმნას იგი. თქვენ იქნება OK. დიახ, თქვენ აპირებს დაკარგავს რამდენიმე რაოდენობა, მაგრამ თქვენ მაინც აპირებს მიიღოს კარგი ხმების რაოდენობა რაღაც მინდა, რომ, თუ თქვენ დაკარგული ეს ორი ხაზი. I იქნება, როგორიც OK, ეს ადამიანი იცის, რას ვაკეთებთ. მათემატიკის რთულია. მე ვიტყოდი, რომ მინდა იყოს ჯარიმა. OK, ასე რომ თქვენ ბიჭები მზად ვცდილობ strlen პოინტერები ახლა რომ თქვენ ბიჭები არიან მაჩვენებელი პატრონები? ასე რომ, მე მოგცემთ ბიჭებს მუშაობა რომ ცოტა. თუ ვინმეს სჭირდება გასაახლებლად. ასე, რომ თქვენ გინდათ გამოიყენოთ კურსორი არითმეტიკა, და მაშინ, თუ არის null, თქვენი განხორციელება უნდა დაბრუნდნენ 0. მსგავსი რამ, რომ თქვენ ნამდვილად ბედნიერი უბრალოდ მოვუწოდებ strlen ბოლოს დღეს. მე ვფიქრობ, რომ ეს შეიძლება იყოს პატარა უფრო ადვილია, ვიდრე ბოლო ერთი, რომელიც არის კარგი. მე მივცემ თქვენ ბიჭები კიდევ ერთი წუთი, და მაშინ ჩვენ ვიმუშავებთ მეშვეობით. და მაშინ ჩვენ წასვლა კონცენტრატორები. OK, მზად ბიჭები? იქნებ ცოტა. ასე რომ, მე მისცა თქვენ თქვენი ორი ვარიანტი, არა? ან შემოწმება null და დაბრუნების 0 თუ ეს არის, თუ რეალურად გამოთვლაც სიგრძე. ასე რომ, ვისაც სურს დაწეროს შემოწმება null? წავიდეთ ეს. აუდიტორია: თუ მრგვალ s უდრის უდრის null დაბრუნების 0. ZAMYLA chan: Lovely. მე მიყვარს, როცა ნახევარი თქვენი პრობლემა მხოლოდ შემოწმების for null. მე ვიცი, რომ თქვენ ბიჭები ბოლო კვირის ვიყავი, როგორიცაა შემოწმების for null ფაქტიურად ყოველ ჯერზე. OK, so-- აუდიტორია: თუ დაბრუნების 0 არის მხოლოდ ერთი ხაზი, ჩვენ კვლავ უნდა curly bracket? ALLISON BUCHHOLTZ-AU თქვენ არ ტექნიკურად უნდა მათ, სანამ თქვენ თანმიმდევრული. კარგია პრაქტიკა მხოლოდ მიიღონ ჩვევა გამოყენების curly braces, მაგრამ ტექნიკურად არ არის. თქვენ არ გჭირდებათ მათ ერთი ხაზი. ჩვენ უბრალოდ, როგორც წესი, რეკომენდაციას ხალხის დაწყებული პროგრამა. ასე რომ, ახლა რა შეიძლება ჩვენ გვინდა აქ? ასე რომ, ახლა ჩვენ ვიცით, რომ ჩვენი სიმებიანი მოქმედებს. ჩვენ გვინდა, რომ შევინარჩუნოთ compute სიგრძე. რა არის ალბათ პირველი რაც ჩვენ უნდა გავაკეთოთ? აუდიტორია: შექმნა int ეს სიგრძე. ZAMYLA chan: ზუსტად. აუდიტორია: და ჩვენ გვინდა, რომ მითითებული ეს? ZAMYLA chan: 0. სრულყოფილი. ყველა უფლება. ახლა რა უნდა გავაკეთოთ? ეს მართლაც დიდი ნაწილი მას. წავიდეთ ეს. აუდიტორია: ასე რომ თქვენ ალბათ ამისთვის loop. და შემდეგ, რადგან, როდესაც თქვენ ეძახით s თქვენ მიღების მისამართს პირველი, თქვენ იწყება i = 0. და შემდეგ, როგორც x პლუს მე არ დაბრუნდა slash 0. ZAMYLA chan: null terminator. აუდიტორია: null terminator. მაშინ თქვენ დაამატოთ ერთი სიგრძეზე. ZAMYLA chan: ჰო. OK, ასე რომ მოდით გახდეს, რომ და ძალიან კონკრეტული კოდი. მაგრამ ეს არის შესანიშნავი იდეა. ეს არის ზუსტად ის, რასაც ჩვენ ვაკეთებთ. ჩვენ ვაპირებთ, რომ iterating მეშვეობით მაჩვენებელი. ასე რომ ჩვენ გვინდა, რომ გავაკეთოთ ნაცვლად int აქ, იმიტომ, რომ ჩვენ არ გულისხმობდა იგი. ჩვენ გულისხმობდა დაწყების ტექსტი, რომ დაიწყოს, რომ ზოგიერთი მისამართი, არა? ასე რომ ჩვენ გვინდა მაჩვენებელი. ასე რომ, ჩვენ ვაპირებთ აქვს ზოგიერთი char ვარსკვლავი, რადგან ეს შეესაბამება ჩვენს მიერ, არა? ასე რომ ეს არის რაღაც მომენტში ჩვენ ინიციალიზაციისას დაწყების სიმებიანი, OK? მოდით უბრალოდ ეძახით მე. თუ ის დაწყების string, რა არის ის აპირებს ენიჭება? არ არის 0. ჩვენ გვინდა, რომ იყოს დაიწყოს ჩვენი სიმებიანი. რა წარმოადგენს დაწყების ჩვენი სიმებიანი, რომელიც მოცემულია ჩვენთვის? აუდიტორია: Just s. ZAMYLA chan: s. ასე რომ, ეს ქმნის რამდენიმე ახალი მაჩვენებელი, წარმოადგენს დაწყება ჩვენი სიმებიანი, OK? კიდევ ერთი გზა, ვფიქრობ, რომ ეს ჰგავს, აქ არის ჩვენი მასივი. ეს არის ჩვენი სიმებიანი, ს. ასე ვთქვათ, ეს არის პირველ ადგილზე, და ეს არის 0x4. 04. ეს არის ჩვენი s, რომლის თანახმადაც მისამართზე. და ჩვენ უბრალოდ შექმნილი კიდევ ერთი ე.წ. მე რომ უბრალოდ ეხება იგივე. ასე რომ, ისინი ორივე მხოლოდ მიუთითებს დაწყება ჩვენი სიმებიანი. ეს არის მხოლოდ გრაფიკული წარმომადგენლობა. ასე რომ, ახლა, რაც ჩვენ გვინდა ამის გაკეთებას, ჩვენ გვინდა iterate ჩვენი პირობა iterating ჩვენი სიმებიანი. ახლა სავაჭრო. მიიღო მაღაზია, ბიჭები. ჩვენ გვინდა, რომ შევინარჩუნოთ განახლება, სანამ ჩვენ მივაღწევთ null terminator, არა? რა შეიძლება რომ გამოიყურებოდეს? გვინდა i, თუ გვინდა star i არის კითხვა? არის null terminator მისამართი ან რამე განლაგებულია მისამართი? მდებარეობს მისამართზე, არა? ამიტომ, ჩვენ უნდა dereference, რაც აქ, რადგან ეს არის მხოლოდ რამდენიმე მისამართზე. რეალურად მისაღებად დაწყება ჩვენ უნდა dereference ეს ასე რომ ჩვენ რეალურად რა არის ეს, პირველ რიგში. ასე რომ, თუ ჩვენ გავაკეთებთ ვარსკვლავი, მე, რა არ გვინდა, რომ ეს თანაბარი? აუდიტორია: Back slash? ALLISON BUCHHOLTZ-AU არსებობს. ამჯამად რომ აზრი ყველას? ჩვენ უნდა წავიდეთ ჩვენი სიმებიანი და დარწმუნდით, რომ იგი არ არის ბოლომდე. და მაშინ ჩვენ შეგვიძლია მხოლოდ განაახლებს მოსწონს ეს. ნორმალური განახლება. ისე, როგორც ეს არის შეხვედრა, რა უნდა გავაკეთოთ? აუდიტორია: სიგრძე plus plus. ZAMYLA chan: Mm-hm. და შემდეგ, for loop წყვეტს, რა გვინდა დაბრუნებას? აუდიტორია: სიგრძე? ZAMYLA chan: სიგრძე. იქ წასვლა. ცხადია, ხორცი ეს ერთი გაგება ამ for loop. ამჯამად ყველას, როგორ, რომ მუშაობდა? მოხარული ვარ, წასვლა მას ერთხელ. აუდიტორია: მეორე ნაწილი, ამიტომ ვარსკვლავი i არსებობს, ეს არის ის, მისამართი first-- ZAMYLA chan: ეს არ არის მისამართზე. ეს რა დროს. აუდიტორია: ეს არის, ფაქტობრივად, არ არსებობს. ZAMYLA chan: სწორედ ის, რაც სინამდვილეში არსებობს. ასე რომ, ეს saying-- მიადევნე ჩემთვის, რომ ეს უკეთესი. ასე რომ, ეს 0x04, და მე უბრალოდ აპირებს რომ ვთქვა, მე ვაპირებ, რომ ეს ჩემი სახელი. OK. დიახ, მე ვიცი, მე ინტელექტუალური მიმოხილვა ამაღამ. უამრავი ინტელექტუალური მიმოხილვა. ასე ვთქვათ, ეს კონტექსტი ეს არის ჩემი სახელი, Allison. ცოტა რთული, მაგრამ ეს არ არსებობს. და ის წარმოადგენს განთავსების სადაც string იწყება, ამიტომ მე ვაპირებ, რათა ეს real-- ეს არის მისამართი, სიმებიანი იწყება, არა? რასაც ჩვენ ვაკეთებთ აქ ჩვენ გვინდა გამოიყენოთ პოინტერები iterate მეშვეობით. ჩვენ ვქმნით ზოგიერთი მაჩვენებელი, i, რომელიც ასევე უდრის დაწყების სიმებიანი. და ყოველ ეტაპზე, ჩვენ გვინდა გაგრძელდება გადის მასივი აქ სანამ ჩვენ მოხვდა null terminator. ასე რომ, ჩვენ ყოველთვის გვინდა, რომ შეამოწმოთ, თუ რა არის თითოეულ ამ მისამართებზე. ასე რომ, ჩვენ Dereference i, ისე, რომ პირველად ვაკეთებთ ამას, იტყვით, რა დროს მისამართზე 0x04? ეს. OK, ჩვენ კარგი. ნამატი სიგრძე. გადაადგილება, რათა მომდევნო ერთი. ასე შევიდე მახსოვს მითითებას ზრდით ზომა რასაც ისინი მიუთითებს. ასე რომ, ამ შემთხვევაში, რადგან ეს char, განაახლოთ ერთი. ასე რომ, ახლა ჩვენ ვაპირებთ შევხედოთ 5 რაც იმას ნიშნავს, რომ ის აპირებს აქ. ის ამბობს OK, წასვლა 0x05. რა არის იქ? ის ლ. და ეს აკეთეთ, რომ სანამ ჰიტები ეს ერთი. და ამბობს, OK, რა არის რასაც მისამართი არის? Null terminator, OK. გასასვლელი. და მხოლოდ დაბრუნების სიგრძე. იმიტომ, რომ თქვენ უნდა, რა არის რეალურად რომ მისამართი, და არა თვით. არსებობს ძალიან ცოტა ადგილებში, სადაც თქვენ ნამდვილად გვჭირდება მისამართზე. ყველაზე მეტი დრო, როდესაც თქვენ იყენებთ და ეს როდესაც თქვენ პირველი იმის მაჩვენებელი, ან როდესაც თქვენ გავლით იგი სხვა ფუნქცია. OK, ყველასთვის კარგი არსებობს? სახის? OK. ასე გამოიყურება ჩვენ მიიღო დაახლოებით 12 წუთი, ასე რომ, ჩვენ რა უნდა იქნებ ჩვენი ბოლო პრობლემა, და მაშინ არსებობს რაიმე ცნებები, რომლებიც ამუშავება ამასობაში, ჩვენ შეგვიძლია სწრაფად წასვლა მეტი რომ. ასე გადართვის გადაცემის ბოლო პრობლემა აქ, გადახვიდეთ განცხადებები. ამიტომ თქვენი სამუშაო გადავწერო ეს ისე, რომ იგი ისე იქცევა, ისევე მაგრამ არ გამოიყენოთ კონცენტრატორები. ცარცისებრი ხელში. ასე რაიმე შეკითხვები ამ off bat? არცერთი? OK. ამჯამად ყველას გვესმის, რომ თუ საქმე არაფერი აქვს მას შემდეგ, ეს ნიშნავს, რომ ეს უნდა დაიცვას შემდეგი ნაბიჯი? ასე შემთხვევაში 1 და 2 ამ შემთხვევაში გააკეთოს ზუსტად იგივე რამ. ზოგჯერ წერტილში არეულობას. ყველა უფლება. ვინმეს გაქვთ რაიმე იდეები? ჰო? აუდიტორია: ასე რომ თქვენ შეგიძლიათ მხოლოდ ამის გაკეთება, თუ განცხადებები. ZAMYLA chan: Mm-hm. რა არის ჩვენი პირველი? აუდიტორია: თუ n უდრის უდრის 1, და 2 ხაზი, ან n შეადგენს უდრის 2, მაშინ ბეჭდვა მცირე. და მაშინ შეიძლება გააკეთოს, თუ? ან შეიძლება უბრალოდ თუ? ZAMYLA chan: ამის გაკეთება შეგიძლიათ სხვაგან, თუ? აუდიტორია: განა აქვს მნიშვნელობა, თუ თუ? ALLISON BUCHHOLTZ-AU: ასე რომ ეს ასეა. აკეთებს anyone-- ასე რომ, თქვენ მიიღებს იგივე გამომავალი თუ თქვენ იყენებთ მხოლოდ ifs წინააღმდეგ თუ თქვენ იყენებთ სხვაგან IFS. შეგიძლიათ ბიჭები ვფიქრობ, იმ მიზეზით, რატომ დაგვჭირდება გამოვიყენოთ სხვა თუ წინააღმდეგ ბევრი ifs? აქვს ეფექტურობა. ჰო? აუდიტორია: ეს შემოწმება ყველა ifs ყოველ ჯერზე. ALLISON BUCHHOLTZ-AU: ასე რომ, თუ იგი მოხვდა ეს პირველი, ეს გაგრძელდება შემოწმება ყოველ მეორე. ასე რომ თქვენ გსურთ გამოიყენოთ თუ სხვაგან IFS იმ შემთხვევაში, სადაც მხოლოდ ერთი მათგანი ოდესმე გამოიყენება. ასე ურთიერთ არის ის, რაც ჩვენ, როგორც წესი, ამბობენ. თუ თქვენ გაქვთ bunch of IFS, ეს იმას ნიშნავს, რომ შესაძლოა, უფრო მეტი, ვიდრე ერთი მათგანი საკითხებზე, და შესაძლოა, მეტი ერთ-ერთი მათგანი შეიძლება იყოს ჭეშმარიტი. და გსურთ ორივე მათგანი შეასრულოს თუ ისინი ჭეშმარიტი. თუ თქვენ მხოლოდ მინდა ერთი მათგანი მუშაობა ამ ურთიერთგამომრიცხავ შემთხვევებში, გსურთ გამოიყენოთ სხვაგან, თუ იმიტომ, რომ ეს ყველაფერი უნდა გააკეთოს, რომ ეფექტურობა. თქვენი კოდი მხოლოდ უკეთესი შექმნილია თუ ის ერთგულია, ეს პრაქტიკა. ასე რომ, ამ შემთხვევაში ჩვენ უნდა სხვას თუ. და ეს იქნება? აუდიტორია: n უდრის უდრის 3. ZAMYLA chan: Perfect. ბეჭდვით. და შემდეგ ჩვენი ბოლო შემთხვევაში, რაც გვაქვს? სხვაგან, ან სხვაგან, თუ? აუდიტორია: Else. ZAMYLA chan: Do ჩვენ want-- გსურთ სხვაგან, თუ იმიტომ, რომ ჩვენ კონკრეტულ შემთხვევაში. ეს არ არის სახის catch ყველა. თითქოს ავტომატურად switch-- მახსოვს კონცენტრატორები თქვენ შეგიძლიათ შემთხვევაში, და მაშინ უნდა იყოს. თუ ჰქონდა რა, რომ სახის თქვენი სხვა განცხადება გააკეთა. მაგრამ თუ ეს მხოლოდ შემთხვევაში, ეს ნიშნავს, რომ თქვენ უნდა შეამოწმეთ თუ ის იქიდან. ასე რომ, ამ შემთხვევაში, ეს იქნებოდა 4 ან 5. ჩვენ გვინდა ბეჭდვა off. ეს არის დიდი. და იქ წასვლა. და რომ თქვენი პროგრამა. ასე რომ, ამ შემთხვევაში, თუკი ჩვენ ჰქონდა ძირითადად რაღაც, ჩვენ უნდა სხვაგან რაც არ უნდოდა ამის გაკეთება. ასე რომ, ეს არის კარგი განსხვავება ვიცი, მესმის. იმას, რომ დაეხმაროს კონცენტრატორები თქვენ? სრულყოფილი. ყველა უფლება. ჩვენ გვყავს დაახლოებით რვა წუთი დარჩა. რა ბიჭებს რაიმე სხვა მაღალი დონის ცნებები? კითხვები ზოგადად? დიახ? აუდიტორია: მე მქონდა შეკითხვა ერთი მათგანი რომ იყო შემთხვევითი რიცხვების გენერატორის ვიქტორინა ნულოვანი. ZAMYLA chan: Oh, რომ ერთი. რომ ერთი არის კიდევ ერთი, სადაც ეს უფრო math, ვიდრე დიახ. გამოსავალი that-- კი, როცა ისინი მე ვხედავ, რომ, მე, რა არის ეს. აუდიტორია: ეს იყო ნომერი 7. ZAMYLA chan: უცნაურია, ჩემი აზრით. ასე რომ, ძირითადად გსურთ გამოიყენოთ drand48, რომელიც მოგაწვდით რიცხვი 0 და 1. და გსურთ გამოიყენოთ ისე, რომ როგორმე a-- და ეს ბევრად უფრო მათემატიკის პრობლემა ჩემთვის, ვიდრე მე ვფიქრობ, რომ CS პრობლემა. ისე, რომ თქვენ გააკეთებს ეს და ზოგჯერ ეს იქნება მხოლოდ, რომ. კიდევ ერთხელ, ეს არის შემთხვევებში, როდესაც ის სახის მოსწონს დაწერეთ რას შეგიძლიათ და ნაწილობრივი საკრედიტო. ასე რომ, თუ ჩვენ გვინდა დაბრუნება, ჩვენ ვიცით, რომ ჩვენ უნდა გამოყენებით drand48 რამდენიმე გზა, არა? რატომ არ ჩვენ უბრალოდ jot ქვემოთ. ვიყენებთ რამდენიმე გზა. ისე, რომ მათ აქვთ თქვენ ბიჭები გამოიყენოს ეს მსგავსი, რომელიც მე შევეცდები და ასახსნელად. ასე რომ, ძირითადად, რა ხდება აქ იმიტომ, რომ ის შორის 0 და 1, თუ რას აკეთებს არის ამრავლებ by-- ეს არის ძალიან ბევრი მათემატიკის კითხვა. მხოლოდ სრული შეზღუდვის, ეს სრულიად მათემატიკის კითხვა. თუ რას აკეთებს არის იმის გამო, რომ 0 და 1 და თქვენ გვინდა, რომ იყოს შიგნით ამ სპექტრს, რეალურად გაერკვნენ, თუ როგორ დიდი სპექტრი და შემდეგ თქვენ ძირითადად მასშტაბის up, რაც ეს აკეთებს. b მინუს გაძლევთ, რომ სპექტრი, განსხვავება იმ ნომრები. შეგიძლიათ გავამრავლოთ 0 და 1, და მერე დასძინა მხოლოდ ნიშნავს, რომ თქვენი მაჩვენებელი it up ასე რომ, ის შორის და ბ, რომელიც მე ნამდვილად არ მინდა ეს პრობლემა. როგორც ვთქვი, ეს ვიქტორინა იგულისხმება, რომ მოიცავს ადამიანები, რომლებიც ნაკლებად კომფორტული, სადღაც შორის, და უფრო კომფორტული. ასე რომ, თუ მათ ეს ასე რომ ეს იყო რაღაც რომ ყველას ნაკლები კომფორტული ადგილი მიიღებს, ჩვენ უნდა ძალიან ბევრი ხალხი გაიტანა Perfects, და უფრო კომფორტული იქნება შეწუხებული. ამიტომ ისინი ყოველთვის აქვს ამ სახის ტვინის teaser კითხვები რომ ნიშნავს, რომ ცოტა რთული რომ მიიღოს შემოქმედებითი აზროვნების. როცა ვხედავთ, არ მიიღოთ ძალიან stumped. მინდა აუცილებლად ვთქვა flip საშუალებით თქვენი ინტელექტუალური პირველი. მოვაგვაროთ პრობლემები რომ თქვენ იცით, რომ თქვენ შეგიძლიათ, იმიტომ, რომ არ არსებობს გამოყენების ვებმებით პრობლემა, როდესაც არსებობს სამი ან ოთხი ან ხუთი გვერდზე მას შემდეგ, რაც თქვენ შეგიძლიათ მარტივად გააკეთოს. აუდიტორია: რატომ ზუსტად არ იცით გავამრავლოთ ის მიერ სპექტრი? ALLISON BUCHHOLTZ-AU თქვენ გამრავლების სპექტრი, თქვენ იცით, ეს მოსწონს, რამდენად შემდეგ გინდათ? ასე, რომ თქვენ შეიძლება ვიფიქროთ, რადგან ეს ბრუნდება რიცხვი 0 და 1, თქვენ შეგიძლიათ ვფიქრობ, რომ ეს პროცენტი. ასე რომ, ეს ძირითადად ამბობდა, თუ ჩვენ გვაქვს ჩვენი ხაზი აქ, აქ, და ბ არის აქ. თქვენ, როგორიცაა რამდენად წარსულში არის ეს? ყველა ვაკეთებთ. ასე რომ თქვენ მხოლოდ ითხოვს პროცენტული ეს სპექტრი, რომელიც არის რასაც ის გაძლევს. და მაშინ ძირითადად მხოლოდ გავაფართოვოთ ეს დამატებით. ის მათემატიკის ტვინის teaser. თუ იყო ბოლო წუთს რჩევა, მე ვიტყოდი flip მეშვეობით კითხვები, გაერკვნენ, რომელიც პირობა ვიცი, რომ, რა მე მივიღე ეს. თითქმის აუცილებლად ისინი აპირებენ შეკითხვაზე, რომ თქვენ არ ვიცი ან, რომ თქვენ აპირებს აქვს დრო ამისთვის, ასე მოხვდა თქვენი ძლიერი, OK? თქვენ ბიჭები ვაპირებთ დიდი. არსებობს ბევრი კითხვები მიზეზი, ასე რომ თქვენ გაქვთ დრო, რომ სახის გაქვთ შესაძლებლობა იმისა, თუ რა თქვენ ნამდვილად კარგად. ასე რომ, ეს OK, თუ თქვენ არ არის კარგი ყველაფერი. ითამაშეთ თქვენი ძლიერი. დიახ? აუდიტორია: ასე რომ, ეს აპირებს დაბრუნდეს რაღაც რომ შეიკვეცება? დიახ, ის, რადგან drand ანაზღაურება შორის 0 და 1. ის ყველაფერს დაბრუნების int, იმიტომ, რომ ეს ამას შეკვეცავს როდესაც ჩვენ დაამატოთ ან გამრავლების მიერ. ზემოთ. ბოლო წუთს კითხვებს? თქვენ ბიჭები ვაპირებთ გავაკეთოთ დიდი. თქვენ იქნება დიდი. და მაშინაც კი, თუ არა, რომ იქ იყოს candy აქ მომავალ კვირას. და მე შენ მიყვარხარ. მე თქვენ მიყვარხართ მიუხედავად. ყველა უფლება, ყველას, გისურვებთ წარმატებას. აქვს დიდი დრო. თქვენ იქნება ჯარიმა. და იცით რა? ორი დღის განმავლობაში ის აპირებს მეტი, ხოლო მე აქვს ორი შუალედური ხუთშაბათი, ასე მინიმუმ თქვენ ბიჭები უნდა გაკეთდეს. ყველა უფლება, მე ვხედავ, რომ თქვენ ბიჭები მომავალ კვირას.