ZAMYLA จัน: Hey ทุกคน
ยินดีต้อนรับสู่ส่วน
วันนี้เป็นเพียงการจะเป็นแบบทดสอบทั้งหมด การตรวจสอบสำหรับการทดสอบของคุณในวันพุธที่
ผมหวังว่าทุกคนจำได้ว่า พวกเขามีการทดสอบในวันพุธที่
และถ้าคุณไม่ได้ดี ตอนนี้คุณได้รับการเตือน
ดังนั้นพุธให้แน่ใจว่าคุณแสดงขึ้น สำหรับชั้นเรียนหรือที่พักอื่น ๆ
ที่จำเป็น
พวกคุณจะเป็นที่น่ากลัว
มันเป็นไปได้ที่ยอดเยี่ยม
และฉันจะทำทุกอย่างที่ฉันสามารถ ที่จะช่วยเตรียมความพร้อมคุณในวันนี้สำหรับการทดสอบของคุณ
ตอนนี้
และในกรณีที่คุณไม่ทราบ มีเซสชั่นการตรวจสอบกว้างแน่นอน
วันนี้ที่ 7 โมง ห้องปฏิบัติการภาคตะวันตกเฉียงเหนือห้องพัก B103
คุณสามารถเห็นฉันอีกครั้งสำหรับอังกอร์ในฐานะที่เป็น ผมจะนำไปเป็นส่วนหนึ่งของเซสชั่นการตรวจสอบว่า
ด้วย
ดังนั้นถ้าคุณไม่สามารถรับเพียงพอของฉัน ตอนนี้คุณสามารถมาอีกครั้งในคืนนี้
>> ทั้งหมดที่ถูกต้องสิ่งแรกเพื่อครั้งแรก
เพียงบางส่วนเคล็ดลับแบบทดสอบก่อนที่เราจะ จริงดำน้ำในการแสดงความคิดเห็น
ดังนั้นเช่นเดียวกับการสอบใด ๆ ทางปฏิบัติ แน่นอนจะช่วยให้คุณออก
มีการสอบจากอดีตที่ผ่านมามี หกหรือเจ็ดปีที่ผ่านมามี
เพื่อให้เป็นจำนวนมากของการปฏิบัติ วัสดุสำหรับพวกคุณที่จะมี
และในความเป็นจริงในวันนี้เป็นจริงเพียง จะไปกว่าเรื่องใด ๆ
ว่าพวกคุณมีคำถามเกี่ยวกับการได้เป็นอย่างดี การทำงานผ่านปัญหาการปฏิบัติ
จากแบบทดสอบศูนย์
ดังนั้นฉันจะโยนขึ้นทดสอบศูนย์ จากปีที่แล้วที่นี่
และเราสามารถทำงานผ่านปัญหาใด ๆ ว่าพวกคุณต้องการ
>> ดังนั้นการฝึก
คุณกำลังจะเริ่มต้นทำในวันนี้ว่า
รหัสบนกระดาษ
เพื่อใช่ถ้าทุกคน จริงจะได้รับการออก
กระดาษที่จะดี เพราะคุณไม่ได้
จะมีเครื่องคอมพิวเตอร์ของคุณใน การสอบและการเขียนโค้ดด้วยมือ
มักจะยากมากขึ้น กว่าที่คุณอาจคาดหวัง
คุณกำลังใช้เพียงแค่ เห็นมันและพิมพ์มัน
และคุณมีคอมไพเลอร์ของคุณเพื่อ ช่วยให้คุณออกเมื่อคุณมีข้อผิดพลาด
แต่คุณไม่ได้รับที่ในการสอบ
ดังนั้นจึงเป็นสิ่งสำคัญจริงๆที่จะเป็นจริง จะสามารถที่จะเขียนออกรหัส
และหน่วยความจำกล้ามเนื้อในการทำ ด้วยมือจริงๆจะช่วยให้คุณ
>> ดังนั้นเราจึงได้รับใกล้ ๆ
มันเป็นจันทร์
การสอบของคุณคือในวันพุธที่
แต่ถ้าคุณมีเวลา แน่นอนใช้เวลาหนึ่ง
ของการสอบจากปีที่แล้วหรือ ปีก่อนที่อยู่ภายใต้ข้อ จำกัด ด้านเวลา
ของหนึ่งชั่วโมงครึ่ง
เพียงแค่เคาะออกชั่วโมง และครึ่งหนึ่งของเวลา
และนั่งตัวเองลงและ เพียงแค่ทำงานผ่านปัญหา
เช่นถ้าคุณเป็นจริง ใช้มันเพราะหนึ่ง
ของสิ่งที่ใหญ่ที่สุดที่เราได้ยินเกี่ยวกับ แบบทดสอบที่พวกเขามีความยาวมาก
มันเป็นจำนวนมากของวัสดุ
มีคำถามจำนวนมากที่มี และคนส่วนใหญ่อาจไม่เสร็จสมบูรณ์
ฉันรู้ว่าฉันทั้งหมดยังไม่จบ แบบทดสอบของฉันเมื่อฉันเอาชั้นเรียน
>> เมื่อทราบว่าเป็นน้อย ส่วนความสะดวกสบาย
เข้าใจว่าหลักสูตรนี้มีความหมาย เพื่อรองรับคนทุกระดับ
เหตุผลทั้งหมดที่เรามีให้คุณสามารถแยก ความสะดวกสบายน้อยกว่าที่ใดที่หนึ่งระหว่าง
และสะดวกสบายมากขึ้นคือการ ชนิดของให้มันเป็นธรรมมากขึ้น
และถ้าคุณมีความสะดวกสบายน้อยก็ ไม่จำเป็นต่อการได้รับทุกอย่าง
เช่นถ้าคุณได้รับ ทุกสิ่งที่คุณอาจจะ
อยู่ในส่วนที่สะดวกสบายมากขึ้น
ดังนั้นเห็นได้ชัดไม่ชนะตัวเองขึ้น ยากเกินไปถ้าคุณไม่สามารถเสร็จสิ้นการสอบ
นำไปจากฉันฉันไม่ได้ทำมัน
ฉันยังคงหัว
ฉันยังคงช่วยสอนการเรียนการสอน
คุณจะปรับ
สิทธิ์ทั้งหมด
และสุดท้ายได้รับการนอนหลับบาง
เห็นได้ชัดว่ามีการสอบใด ๆ เรามักจะพูดแบบนี้
อัดคืนก่อ​​น และไม่ได้รับการนอนหลับใด ๆ
ไม่ not-- บางทีถ้าว่า เหมาะกับคุณไปได้
แต่สำหรับส่วนใหญ่ของ คนที่ได้รับการนอนหลับบาง
ส่วนที่เหลือปล่อยให้สมองของคุณและกู้คืน ก่อนที่จะมาในสำหรับการสอบ
จริงๆจะช่วยให้คุณ
นอกจากนี้จะมีเกือบ ก็เป็นขนมที่สอบ
ดังนั้นคุณต้องมองไปข้างหน้า
พวกคุณกำลังจะทำอะไรดี
มันเป็นไปได้ดี
และตอนนี้ในชั่วโมงถัดไปและครึ่งหนึ่งของฉัน จะพยายามและเตรียมคุณเป็นที่ดีที่สุดเท่าที่จะทำได้
>> ดังนั้นผมจึงมีสไลด์จากพื้น ทุกส่วนถึงตอนนี้
ฉันจะไม่ผ่านไป ทั้งหมดของพวกเขาเพราะนั่นไม่ได้
เป็นไปได้ในหนึ่งชั่วโมงครึ่งเป็นอย่างดี การทำงานผ่านปัญหาการปฏิบัติ
ดังนั้นแทนที่จะฉันมีรายชื่อของหัวข้อ
เหล่านี้ทุกสิ่ง ที่เราจะตอบคำถามคุณใน
ถ้ามีอะไรที่ ที่จริงกระโดดออกมา
ที่คุณต้องการที่จะไปกว่าที่คุณ ต้องการให้ฉันไปกว่าแนวคิด
ฉันสามารถลองและให้ ภาพรวมมี
หรือถ้าคุณต้องการที่จะกระโดดสิทธิ์ในการ ทำปัญหาการปฏิบัติร่วมกัน
เราสามารถทำเช่นนั้นได้
มันขึ้นอยู่กับพวกคุณ
มีไม่ว่าหลายท่าน
ดังนั้นจึงเป็นสิ่งที่พวกคุณต้องการจะทำ
ฉันอยากจะเป็นมากที่สุด เป็นประโยชน์ต่อพวกคุณ
ดังนั้นฉันจะให้คุณเพียงแค่มอง
>> ผู้ชม: สิ่งหนึ่งคือ แผนภูมิที่เราให้
พูดเกี่ยวกับสแต็คและกอง
เพียงแค่ความคิดที่อยู่เบื้องหลัง และสิ่งที่หมายถึง
ZAMYLA จัน: ใช่, OK
ทั้งหมดนี้เป็นวิธีการที่ สิ้นสุดเพื่อให้ฉันเลื่อน
>> ผู้ชม: เราจะได้ไม่ต้อง ทำตอนนี้ แต่สิ่งที่
>> ZAMYLA จัน: คือมี anything-- นี้
เป็นชนิดของเลือนสำหรับคน?
ผู้ชม: ใช่ฉันที่สองที่
และสามารถเรายังไม่ Buffer Overflow?
ZAMYLA จัน: บัฟเฟอร์ล้น?
ตกลง
ดังนั้น Buffer Overflow สวย ง่ายเพียงแค่พูดคุยเกี่ยวกับ
มันเป็นพื้นบัฟเฟอร์คุณคิดเกี่ยวกับ หน่วยความจำอาร์เรย์บางอย่างที่คุณมีใช่มั้ย?
เรามักจะพูดคุยเกี่ยวกับ หน่วยความจำล้นเมื่อ
คุณไม่ได้ตรวจสอบว่า ผู้ใช้จะถูกวางในใช่มั้ย?
และความคิดที่เป็น ที่มีหน่วยความจำล้นเป็น
พวกเขาจะวางอยู่ในที่ห่างไกล ข้อมูลที่มากเกินไปสำหรับพื้นที่
ที่คุณได้รับการจัดสรรสำหรับพวกเขาใช่มั้ย?
>> ดังนั้นถ้าคุณจะพูดว่าให้ ฉันข้อความบางอย่างเราไม่
สมมติว่าพวกเขากำลังจะให้ เราข้อความระยะเวลาที่เหมาะสม
อาจจะเป็นเส้นคู่ whatnot
ดังนั้นเราจึงไม่ได้ตรวจสอบ
แต่พวกเขาเลี้ยงเราใน หนังสือทั้งเล่มที่ข้อความ
และมันล้นปริมาณของ พื้นที่ที่เราได้จัดสรรเพื่อการนี​​้
และสิ่งที่เกิดขึ้นคือมันอาจจะเขียนทับ สถานที่ที่มันไม่ควร
>> ดังนั้นฉันรู้ว่าศาสตราจารย์ลันกล่าวว่า บางสิ่งบางอย่างเกี่ยวกับการโจมตีหน่วยความจำล้น
เพื่อให้เป็นสถานที่ที่ผู้ใช้จะป้อนข้อมูล บางส่วนจำนวนมากของข้อมูลในความหวัง
ที่เขาเขียนทับที่ผ่านมา ในตอนท้ายของบัฟเฟอร์ของคุณ
และแทนที่บางสิ่งบางอย่างที่ผมสงสัย ฉันเรามีผู้ที่อยู่ในสไลด์ที่นี่
ผมไม่คิดว่าเรามี สไลด์ผู้ที่อยู่ในที่นี่
แต่โดยทั่วไปเขาจะเขียนทับ เป็นส่วนหนึ่งของหน่วยความจำบาง
ที่ช่วยให้เขาเข้าถึง ไปยังส่วนของเครื่องคอมพิวเตอร์ของคุณ
ที่คุณจะไม่ ปกติมีการเข้าถึง
>> สิ่งที่ใหญ่ที่สุดที่มี หน่วยความจำล้นเป็นเพียง
ที่จะเข้าใจว่ามัน ที่เกิดขึ้นเมื่อคุณไม่ได้
ตรวจสอบว่าของคุณ ผู้ใช้มีการวางใน
เมื่อคุณไม่ได้ชนิดของ การป้องกันต่อว่า
และที่ง่ายที่สุด สิ่งที่มันเป็นเพียงแค่ผู้ใช้ของคุณ
ป้อนจำนวนมาก ของข้อมูลในความพยายาม
เพื่อแทนที่การรักษาความปลอดภัยบางอย่าง เป็นส่วนหนึ่งของหน่วยความจำของคุณ
นั่นคือทั้งหมดที่มันเป็น
>> ดังนั้นที่นี่กองและกอง
โดยทั่วไปทั้งหมดนี้เป็นเพียง การเป็นตัวแทนของหน่วยความจำ
และสิ่งที่จะถูกเก็บไว้
นั่นคือจริงๆชนิดของ ทั้งหมดที่คุณจำเป็นต้องรู้
สิ่งที่ใหญ่ที่สุดที่ คุณจำเป็นต้องรู้ว่ามีอยู่
that-- ให้ฉันดูว่า มี better-- ที่นี่
ดังนั้นนี่คือสแต็คที่นี่
>> ดังนั้นสแต็คจะทำอย่างไรกับ ทั้งหมดของการทำงานของคุณ
ว่าคุณกำลังเรียกร้องในเวลาใดก็ตาม
และสิ่งที่สำคัญที่ต้องจำ จะออกในสัปดาห์ที่ผ่านมากับ malloc
คือการที่คุณไม่ได้จริงๆต้อง การควบคุมที่จำเป็นมากกว่านั้น
ทั้งหมดขึ้นอยู่กับเมื่อบางอย่าง ฟังก์ชั่นกำลังดำเนินการ
และเมื่อพวกเขากำลังดำเนินการพวกเขา มีสิ่งที่เรียกว่าเฟรมกอง
ที่ขึ้นไปที่นี่
>> ดังนั้นมันทุกชนิดที่เกิดขึ้น โดยไม่ต้องมีการป้อนข้อมูลที่แท้จริงจากคุณ
คุณเขียนโปรแกรมของคุณ และคุณปล่อยให้มันทำงาน
และกองชนิดของเวลา ดูแลตัวเองเป็นที่จะต้อง
ดังนั้นถ้าในหลักที่คุณโทร ก้อนที่จะถูกส่งผ่านขึ้นที่นี่
มันจะสร้างกรอบ
แต่มีอะไรที่คุณทำอย่างชัดเจนคือ เพื่อสร้างกองกรอบที่อื่นนอกเหนือจาก
เขียนฟังก์ชั่นจะเริ่มต้นด้วย, OK?
>> อะไรคือสิ่งที่ชนิดของคุณภายใต้ ควบคุมกองกับ malloc
ดังนั้นเมื่อใดก็ตามที่คุณบางอย่าง malloc, คุณจะพาหน่วยความจำจากกอง
และนั่นคือความทรงจำที่คุณ มีสำหรับการขาดคำดี,
การควบคุมที่ชัดเจนกว่า เพราะจำได้ว่ามี malloc
มันเป็นพื้นมี จนกว่าคุณจะพูดอย่างอื่น
สำหรับบรรดาของคุณที่ ดูส่วนเมื่อสัปดาห์ที่แล้ว
มันมีจนกว่าคุณจะบอกให้หายไป
มันจะมียกเว้น บอกเป็นอย่างอื่นไม่ได้
ดังนั้นกองเป็นสิ่งที่เพียงแค่ คุณสามารถคิดเป็นหน่วยความจำ
ที่คุณสามารถควบคุม
และผู้ที่มีเพียง สองสิ่งที่แตกต่างกันขนาดใหญ่
>> อื่น ๆ กว่าที่คุณไม่ควรมี ที่จะต้องกังวลมากเกินไปเกี่ยวกับสแต็คและกอง
คำถามหรือมักจะมากขึ้นเพียง ถ้าคุณมีพารามิเตอร์ท้องถิ่น
หรือการทำงานก็จะเป็น ในกองหรือกอง
เห็นได้ชัดในกรณีนี้ มันจะเป็นกอง
หากคุณกำลัง mallocing บางสิ่งบางอย่าง ไม่ว่าจะเป็นมาจากไหน?
กอง
ถ้าคุณดูที่การปฏิบัติแบบทดสอบเหล่านั้น โดยทั่วไปจะมีประเภทของคำถาม
ว่าพวกเขามี
>> คุณไม่ต้องกังวล มากเกินไปเกี่ยวกับเรื่องนี้
คุณจะได้รับเป็นมากขึ้นอย่างชัดเจน เกี่ยวกับสแต็คและกอง
ในภายหลังหรือในชั้นเรียนอื่น ๆ CS
ดังนั้นเพียงแค่มีชนิดของ คิดทั่วไปของสิ่งนี้
จะดีที่ฉัน เพียงชนิดของเดินไป
ใด ๆ หัวข้ออื่น ๆ ?
ใช่?
>> ผู้ชม: คุณสามารถไปกว่า ตัวชี้อีกครั้งอย่างรวดเร็วจริงๆ?
ZAMYLA จัน: ตัวชี้?
คุณต้องการความคิด ภาพรวมของตัวชี้
หรือคุณไม่ปฏิบัติกับตัวชี้?
ผู้ชม: ชนิดเช่นไวยากรณ์
ZAMYLA จัน: ไวยากรณ์?
ใช่
ตกลงเราจะได้รับมี
ใช่ดังนั้นนี้เป็นเพียงชนิดของบางสิ่งบางอย่าง เมื่อคุณมีการทำงานซ้ำ
เวลานั้นฟังก์ชัน recursive ทุก เรียกว่ามันก็จะเพิ่มกองกรอบอื่น ๆ
สวยมากตัวอย่างเช่น ของวิธีที่คุณทำไม่ได้จริงๆ
มีการควบคุม เฟรมในสแต็คของคุณ
>> ตกลงตัวชี้
ขวาตัวชี้ทั้งหมดเพื่อสร้าง
โปรดจำไว้ว่ามันเป็นเพียงแค่พิมพ์ดาว
ดังนั้นสิ่งที่ประเภทของข้อมูลที่ คุณกำลังจะได้รับการชี้ไปที่
ดังนั้นนี้จะเป็นตัวชี้ไป int
นี้จะเป็นตัวชี้ไปยังถ่าน
นี้จะเป็นตัวชี้ไปลอย
ดังนั้นจึงเป็นสิ่งที่โดยทั่วไป คุณต้องการที่จะชี้ไป,
ดาวตกลงเป็นวิธีการที่คุณประกาศตัวชี้?
>> แต่แล้วก็เห็นได้ชัดว่าได้รับเพียงเล็กน้อย หากินเมื่อคุณมีตัวชี้
หรือคุณมีดาวอะไรก็ตาม
ดังนั้นความแตกต่างใหญ่คือ เมื่อคุณกำลัง declaring--
เพื่อให้เรามี some-- ดังนั้น นี้จะใช้เวลาบางส่วนดาว int
ดังนั้นนี่คือตัวชี้บางอย่าง เรียก x เพื่อ 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 เรามี ที่จะใช้ดำเนินการอยู่ซึ่ง
เป็นเครื่องหมายที่จะได้รับที่อยู่ ของ x ซึ่งในกรณีนี้ 0x04
แล้วถ้าเรามี บางสำเนา int เพียงแค่นี้
สร้างบางส่วนกล่องอื่น ๆ ที่ ถือสำเนาเรียกว่า int
และถ้าเรากำหนดให้เจ้านี่ ดังนั้นนี้จะอ้างอิงได้
ดังนั้นจึงกล่าวว่าไปที่ใด ตัวชี้ถืออยู่
ตัวชี้ถืออยู่นี้ ดังนั้นเราจะไปกว่าที่นี่
และเราบอกว่าโอเคสิ่งที่อยู่ในมันได้หรือไม่
มันเป็น 5
ดังนั้นการคัดลอกกลายเป็น 5
ทำให้รู้สึก?
>> ถ้าฉันพยายามที่จะกำหนด นี้เพื่อชี้เพียง
สิ่งที่ไม่จริงชี้เท่ากัน?
มันก็จะเป็นสิ่งที่ ชี้มีใช่มั้ย?
และแล้วสิ่งที่ถ้าฉันทำอย่างนี้?
สิ่งที่จะคัดลอกเป็นตอนนี้หรือไม่
>> ผู้ชม: 0x08
ZAMYLA จัน: ครับ ที่อยู่ของตัวชี้ของเรา
ส่วนหนึ่งของที่ใด ๆ ที่ จะต้องมีการอธิบายอีกครั้ง?
เย็น
มีแน่นอนมาก ปัญหาความสนุกสนานในแบบทดสอบหนึ่ง
ที่เราจะได้มากกว่าที่ จะช่วยให้คุณปฏิบัติมากขึ้น
คนจากสัปดาห์ก่อนสามารถ บอกคุณมันก็ไม่ใช่ว่าไม่ดี
เราได้ผ่านทั้ง แผนภูมิและทุกคนได้ดี
>> ตกลงเพื่อให้เป็นภาพรวม ของไวยากรณ์ของตัวชี้
สิ่งที่ใหญ่ที่สุดคือการทำความเข้าใจว่า การสร้างพวกเขาทำอ้างอิง,
และที่อยู่ของ, OK?
เย็น
หัวข้ออื่น ๆ ใด ๆ ก่อนที่ เราดำน้ำในการปฏิบัติ
นอกจากนี้หากเรากำลังจะผ่าน ปัญหาการปฏิบัติ
และมีสิ่งที่คุณต้องการ ทบทวนที่เราสามารถทำเกินไป
คุณมีบางสิ่งบางอย่าง?
>> ผู้ชม: Structs และรายชื่อที่เชื่อมโยง
ZAMYLA จัน: Structs และรายชื่อที่เชื่อมโยงตกลง
ดังนั้น structs
เราจริงจะ ผ่านคืนนี้ด้วย
ตกลงดังนั้น structs
structs มีพื้น เพียงวิธีการที่คุณจะถือ
ค่าหลายชนิดที่แตกต่างกัน
ดังนั้นด้วยอาร์เรย์เรา ตีบชนิดข้อมูลหนึ่ง
อาร์เรย์ของเราทั้งสองมีเพียงแค่จะตัวเลข หรือเพียงแค่เป็นตัวอักษรหรือเพียงแค่เป็นลอย
>> แต่บางทีคุณอาจจำเป็นต้อง มีมากกว่านั้น
บางทีคุณอาจจะต้อง hold-- ถ้า คุณกำลังพูดถึงนักเรียน
คุณกำลังจะมีบ้านของพวกเขาพวกเขา หมายเลข ID อายุที่พวกเขาอยู่ของพวกเขา
ใช่มั้ย?
และทั้งหมดที่มี ประเภทที่แตกต่างกันของชนิด
ดังนั้นคุณจึงไม่สามารถจัดเก็บ เหล่านั้นทั้งหมดในอาร์เรย์
>> ดังนั้นสิ่งที่คุณสามารถทำได้คือคุณ สามารถสร้าง struct, ซึ่ง
คุณสามารถคิดว่าเป็นของคุณ ชนิดของข้อมูลส่วนบุคคล
ดังนั้นแทนที่จะเพียงแค่มี ints และแทนที่จะเพียงแค่มีลอย
คุณสามารถมีนักเรียนประเภทที่ มีทั้งหมดของเขตข้อมูลเหล่านี้ในนั้น
ดังนั้นวิธีการที่เราเริ่มต้น structs ของเราเท่าไหร่จริง
ตั้งแต่การเขียนของฉันเป็นสาหัสเรา กำลังจะเปลี่ยนไปพิมพ์
แอ่ว
>> ตกลงดังนั้นหากเราต้องการที่จะสร้าง struct-- ฉันแค่จะไปลงที่นี่
ไม่สนใจในหลักใด ที่เราจะใช้ในภายหลัง
ดังนั้นวิธีที่คุณต้องการจะทำ มันขึ้นอยู่กับ typedef struct
และขอเพียงโทรนักเรียนนี้ เพราะนั่นคือสิ่งที่ผมใช้
ตกลงดังนั้น typedef หมายความว่าคุณ การกำหนดรูปแบบใหม่, OK?
มีความแตกต่างจะเป็นเมื่อคุณทำ เพียงเมื่อเทียบกับ struct typedef struct
สำหรับ intents และ วัตถุประสงค์ที่พวกคุณเป็นเพียง
จะถือว่าพวกเขากำลัง ประมาณเดียวกันและเพียงแค่
ใช้ typedef struct สำหรับตอนนี้
มันจะกลายเป็นวิธีที่ชัดเจนมากขึ้นในของคุณ ต่อไป P ตั้งสิ่งที่แตกต่างเหล่านั้น
แต่ฉันไม่คิดว่าคุณต้อง กังวลเกี่ยวกับว่าตอนนี้
ฉันจะค่อนข้างมากคุณ ทราบวิธีการสร้างหนึ่ง
เข้าถึงได้และกำหนด [? มูลค่า ?]
>> รูปแบบใหม่ของโครงสร้างและ เราจะเรียกมันว่านักเรียน
ดังนั้นหลังจากที่เราเสร็จสิ้นการสร้างนี้ สำหรับ intents และวัตถุประสงค์
คุณจะมีชนิดที่เรียกว่านักเรียน
และคุณสามารถคิดว่ามันเป็นเพียงแค่ชนิด เช่น int หรือลอยหรือถ่าน
มันเป็นเพียงอีกชนิดหนึ่ง, OK?
>> ดังนั้นในหนึ่งนี้สิ่งที่เรามี?
เรามีอาจจะชื่อ
ดังนั้นบางทีเราต้องการชื่อสตริง
และเรามีอาจจะ int ที่ ID
และเรามีอีก ที่หมายเลขโทรศัพท์
และเราได้ some-- เรามาดู
อะไรที่เราอาจจะมี?
เราจะมีสายที่บ้านของเขาบาง
ทุกสิ่งที่นักเรียนมี
>> ดังนั้นนี้สร้าง struct ตอนนี้
ดังนั้นวิธีที่เราอาจสร้างนักเรียน?
ถ้าเรามีตัวแปรบางอย่างที่เป็น จะพูดคุยเกี่ยวกับวอล์คเกอร์ที่นี่
ดังนั้นเราจึง have-- เราเป็นแค่ จะเรียกวอล์คเกอร์นี้
เขาต้องการชนิด
สิ่งที่ชนิดของคุณ?
ผู้ชม: นักศึกษา
ZAMYLA จัน: นักศึกษา
ดังนั้นเพียงแค่นี้สร้างวัตถุที่คุณสามารถ คิดว่าการที่มีสิ่งเหล่านี้
คุณเพียงแค่สร้างนักเรียนวอล์คเกอร์
ดังนั้นตอนนี้เราจะต้องสามารถ ที่จะกำหนดสิ่งเหล่านี้ใช่มั้ย?
ดังนั้นไม่มีใครจำได้ว่า เราเข้าถึงภายใน struct?
ผู้ชม: ระยะเวลา
ZAMYLA จันระยะเวลาที่แน่นอน
ดังนั้นหากเราต้องการที่จะกำหนด เขาชื่อเราสามารถดำเนินการได้
เห็นได้ชัดว่านี้ be-- ส่วนหนึ่งที่นี่จะ
จะอยู่ในหลักดังนั้น จริงให้ฉันทำเช่นนี้
ประกาศนี้ดังกล่าวข้างต้นที่สำคัญเพื่อ ที่เราสามารถใช้งานได้ภายในหลัก
ดังนั้นตอนนี้ฉันต้องการจะทำ ID, และเราก็จะทำบางอย่างที่นั่น
แล้วเราจะกำหนดบ้าน
bam
เย็น
>> ดังนั้นตอนนี้เราควรจะจำเป็นต้องเข้าถึง อะไรต่อ on-- อาจ we--
ถ้าเราจำเป็นต้องใช้อะไร ขอเพียงแค่ทำสำเนา ID int
และฉันต้องการที่จะคัดลอก ID วอล์คเกอร์ลงในนี้
ฉันอาจจะทำมันได้อย่างไร
คุณจำเป็นต้องใช้ในวอล์คเกอร์ struct ที่ [? ไปที่?] [? E?]
และวิธีเดียวกับที่เรา ที่ได้รับมอบหมายจะขึ้นที่นี่ว่า
เราอาจจะเข้าถึงได้เมื่อเราต้องการ ให้ค่าอย่างอื่นที่?
ผู้ชม: Walker.id
ZAMYLA จัน: ใช่ว่า
ดังนั้นที่สวยมากทั้งหมด คุณจำเป็นต้องรู้สำหรับ structs
คุณเพียงแค่ต้องคิดว่า พวกเขาเป็นตัวแปรอื่น
โดยทั่วไปสร้างของคุณ ชนิดตัวแปรตัวเอง OK?
คุณสามารถใช้มันในการประกาศ ตัวแปรในทางใดทางหนึ่ง
นี่วอล์คเกอร์ก็ยังคงเป็นตัวแปร
มันก็มีนักเรียนประเภทนี้แทน ของ int ชนิดหรือสตริงชนิด,
หรือถ่านชนิด
ถ้ามีวิธีที่ง่ายที่จะพูดคุย เกี่ยวกับ structs มันเป็นเพียงแค่ตัวอักษร
สร้างประเภทข้อมูลของคุณเอง ที่ช่วยให้คุณกลุ่ม
ทั้งหมดที่แตกต่างกันเหล่านี้ ชนิดของข้อมูลเข้าด้วยกัน
ไม่ว่าจะทำให้ความรู้สึก?
ตกลง
และการเข้าถึงที่มีจุด
สวยมากทั้งหมดที่คุณต้องการ
>> ตกลงที่ไม่ PowerPoint ของฉันไป?
นี่ก็คือ
อย่างนี้เป็นเรื่องแปลก
อา
ตกลงเย็น
ใด ๆ หรือสิ่งอื่น ๆ ที่เราทำ ต้องการที่จะมุ่งหน้าไปยังการปฏิบัติ?
การปฏิบัติ?
ตกลง
น่ากลัว
ฉันจะออกจากนี้
หากจุดใด ๆ ในระหว่าง คำถามทางปฏิบัติ
ฉันมีความสุขที่จะปรับปรุง และผ่านสิ่ง
ดังนั้นผมจึงมีคำถามเป็นศูนย์ขึ้นที่นี่
ถ้าพวกคุณต้องการที่จะดึง มันขึ้นอยู่กับเครื่องคอมพิวเตอร์ของคุณ
เพียงแค่ต้องการใช้เวลาห้า นาทีสามารถเรียกดูผ่าน
อาจจะเลือกบางด้านบน คำถามที่คุณต้องการที่จะไปกว่า
ถ้าพวกคุณไม่สามารถตัดสินใจเราจะเพียงแค่ ช้าเริ่มต้นการทำงานผ่านพวกเขา
แต่ฉันแน่ใจว่ามีเป็นไปได้บางส่วน คำถามที่คุณมีโดยเฉพาะอย่างยิ่ง
กระตือรือร้นที่จะพูดคุยเกี่ยวกับการมี ฉันทำงานผ่านกับคุณตลอด
ดังนั้นเพียงแค่ไปข้างหน้าและใช้เวลาห้านาที
เลื่อน
และนี่คือการทดสอบจาก 2013
>> ผู้ชม: ศูนย์?
>> ZAMYLA จัน: ใช่, แบบทดสอบศูนย์
เราไม่ได้ทำแบบทดสอบสิ่งหนึ่ง
เราจะทำในสัปดาห์ที่สอง
นอกจากนี้สำหรับผู้ที่ เดินเข้ามาในช่วงปลายปีเรามีขนม
เพื่อทำพวกคุณต้องการขนม?
>> ผู้ชม: ตรวจสอบว่า
>> ZAMYLA จัน: ฉันแค่ จะผ่านรอบ
เฮ้, ถ้าพวกคุณได้รับที่นี่ ในช่วงต้นของคุณจะได้รับขนมอื่น ๆ อีกมากมาย
ที่ดี
เบนคุณไม่ต้องการขนม?
คุณต้องการบางส่วนของเหล่านี้หรือไม่
นอกจากนี้ยังมี Snickers ถ้า ใครต้องการ Snickers
ฉันจะออกจากพวกเขาที่นี่และที่นี่
รู้สึกฟรี
คุณต้องการอีกต่อไป?
ผู้ชม: ชุดทั้งหมด
ขอบคุณ
>> ZAMYLA จัน: และผมก็มีความสุข กองเล็ก ๆ น้อย ๆ มีที่จุดเริ่มต้น
พวกคุณจะได้รับที่จะใช้แบบทดสอบและ ฉันได้รับที่จะมีงานเลี้ยงแบบทดสอบการจัดลำดับ
มันเป็นความสับสนวุ่นวาย
900 การสอบ
มันจะเป็นเรื่องสนุกมาก
จะต้องดี
ผมค่อนข้างมั่นใจว่าที่หนึ่ง ของพันธะพนักงานที่ใหญ่ที่สุด
คืนของปี
มีใครทำแบบทดสอบจากศูนย์ ปีที่ผ่านมา แต่จากความอยากรู้?
>> ผู้ชม: บางส่วนของมัน
>> ZAMYLA จัน: ชิ้นส่วนของมันตกลง
คุณมีคำถามใด ๆ ของพวกเขา?
ผู้ชม: ฉันแล้ว ไปเวลาทำงาน
ขอบคุณว่า
ZAMYLA จัน: ดีหวังว่า ก็ยังคงชนิดของที่มีประโยชน์
เมื่อไหร่ที่คุณไป เวลาทำงานที่?
ผู้ชม: TF ของฉันมีพวกเขาช่วงบ่ายวันนี้
ZAMYLA จัน: โอ้
ใคร TF ของคุณ?
ผู้ชม: เฟร็ด [? Wujaya?]
ZAMYLA จันทร์: มี TFS มากมาย
ดังนั้นจำนวนมาก
สิทธิ์ทั้งหมด
ทุกคนที่ได้มีการเริ่มต้นที่ฉันสามารถ จดว่าเราต้องการที่จะทำงานใน?
ผมถือว่าตัวชี้ เป็นหนึ่งเดียวกับตาราง
ไปมัน
>> ผู้ชม: บางทีสวิทช์หนึ่ง
ZAMYLA จันดังนั้นจำนวน 12?
ผมถือว่าหมายเลข 8 และ 9 อาจจะ คนคนที่ต้องการที่จะไปกว่า
>> ผู้ชม: และ 10 และ 11
>> ZAMYLA จัน: แล้วพวกคุณรู้ คุณจะได้รับหน้าหนึ่งของบันทึกใช่มั้ย?
>> ผู้ชม: ใช่ดังนั้นสิ่งที่ เราได้รับอนุญาตให้ใส่ในที่
>> ZAMYLA จัน: คุณได้รับอนุญาต ที่จะนำสิ่งที่คุณต้องการ
และมันสามารถพิมพ์
เท่าที่ผมจำได้ว่าเราได้รับการพิมพ์
>> ผู้ชม: คุณสามารถทำได้ หลังและด้านข้างทั้งสอง?
>> ZAMYLA จัน: ใช่ทั้งสองฝ่าย
ดังนั้นสิ่งที่ต้องการกองและ [? Back End?] กองการทำงานของคุณ
ครั้ง
มีประโยชน์
สิ่งเล็ก ๆ น้อยอาจจะเกี่ยวกับ ชี้เพื่อเตือนให้คุณ
ไวยากรณ์สำหรับสิ่งที่
มีเหมือนโครงกระดูก โปรแกรมจะมีประโยชน์สุด
ฉันรู้ว่าฉันมักจะลืมว่าสิ่งที่ ผมควรจะเขียน int หลัก
เพราะฉันมักจะเพียงแค่คัดลอก วางจากชุด P ของฉันก่อนหน้า
หรือมันมีอยู่แล้วดังนั้น จริงๆผมไม่เคยเขียนมัน
เพื่อให้มีที่สามารถเป็นประโยชน์สุด
>> ตกลงดังนั้นทำไมเราไม่ เริ่มต้นด้วยเลข 8 แล้ว?
สิทธิ์ทั้งหมด
ตกลง
เพื่อพิจารณาโปรแกรมด้านล่าง
ดังนั้นเห็นได้ชัดเมื่อเราเห็น ตัวชี้ก็อาจ
เป็นความคิดที่ดีที่จะเริ่มวาดภาพใช่มั้ย?
ฉันต้องการที่จะทราบว่าทั้งหมดของฉัน ชิ้นใหญ่ของชอล์กไป
นี้เป็นชนิดที่น่ารำคาญ
>> ดังนั้นเราจึงมีที่นี่ฟังก์ชั่นบางอย่างแลกเปลี่ยน ที่จะใช้เวลาในสองตัวชี้
ดังนั้นในกรณีนี้พวกเขา จริงควรจะเปลี่ยน
เมื่อเทียบกับสิ่งที่แลกเปลี่ยนเดิมของเรา ฟังก์ชั่นที่มีเพียงเอาในสำเนา
ดังนั้นสิ่งที่มันจะทำ เป็นเท่าไหร่ขอเริ่มต้นด้วยหลัก
เพราะที่ที่ 1
>> ดังนั้นเราจึงมีบาง int x 1
เรามีและที่เท่ากับ 2 บาง
และแล้วเรามีการแลกเปลี่ยนบางอย่าง ที่จะใช้เวลาเหล่านั้น
และขอดูสิ่งที่เราได้ที่นี่
และใน table-- ของเราโอ้เด็ก
ฉันจะทำเช่นนี้?
ฉันจะวาดตารางของฉันมากกว่าที่นี่
แทบจะไม่ทำให้มันมี
แทบจะไม่ทำให้มัน
1, 2, 3, 4, 5, 6, 7
และพวกเขาให้เราว่า 1 คือ 1 และ 2 1
เย็น
น่ากลัว
ดังนั้น 3
และมี [? 1. ?]
>> สิทธิ์ทั้งหมด
และที่อยู่ของ x แล้วเป็น 0x123
และ y เป็น Ox127
เย็น
สิทธิ์ทั้งหมด
ฉันต้องการพวกคุณทำงานเกี่ยวกับเรื่องนี้ สำหรับการทำงาน like-- เพียงแค่นั้น
กับคนที่อยู่รอบตัวคุณ
ผมอยากบอกว่า ในขณะที่ฉันได้รับการตั้งค่า
ทำงานกับมัน
และพยายามทำงานกับมันโดย ตัวเองสักสองสามนาที
และแล้วฉันจะทำงานกับมันอยู่กับคุณ
เพราะวิธีเดียวที่คุณจริงๆ จะเรียนรู้คือการทำมันด้วยตัวเอง
ไม่ต้องกังวล
โชคดี
>> ตกลงทำไมเราไม่ช้า เริ่มต้นการทำงานผ่านทางนี้
เพื่อให้ทุกคนได้รับหลังจากบรรทัดหนึ่ง x 1
หลังจากที่สายสอง x และ และเป็นที่ 1 และ 2 ใช่มั้ย?
เย็น
ดังนั้นสายสามคือสิ่งที่ ได้รับน่าสนใจแน่นอน
>> ดังนั้นสิ่งที่เราได้ทำที่นี่ คือเราได้เปลี่ยนตอนนี้
เราบอกว่า x และ y มีจุดเหล่านั้น หรือพวกเขามีที่อยู่ของ x และ y,
ใช่มั้ย?
ดังนั้นในกรณีนี้สาม สิ่งที่เป็นคุณค่าของ?
ได้รับการส่งผ่านไปในได้รับ ค่าของที่อยู่ของ x ใช่มั้ย?
>> ผู้ชม: 1
>> ZAMYLA จัน: ดังนั้นเราจึงเพิ่มกับ x?
ที่อยู่อะไร x หรือไม่?
>> ผู้ชม: 0x123
>> ZAMYLA จัน: แน่นอน
แต่สิ่งที่เป็นจริงชี้ไป?
ถ้าเราจะ dereference, สิ่งที่มีค่าก็จะให้เรา
ผู้ชม: 1
ZAMYLA จัน: มันจะ ให้เรา 1 เพราะสิ่งที่
เรากำลังจะบอกคือไปนี้ ที่อยู่บอกให้เราทราบสิ่งที่มีค่าเป็น
ดังนั้นสิ่งที่จะได้รับการข?
>> ผู้ชม: 0x127
ZAMYLA จัน: แน่นอน
ดังนั้นจึงเป็นที่อยู่ของ y
และแล้วสิ่งที่ [? dereference? ?]
ผู้ชม: 2
ZAMYLA จัน: OK ดังนั้นตอนนี้สี่
เรากล่าวว่าเป็น equal-- ดีตอนนี้เราได้ อุณหภูมิ int ทำเท่ากับดาว
ดังนั้นสิ่งที่เปลี่ยนแปลง?
มีเพียงสิ่งหนึ่งที่ ว่าการเปลี่ยนแปลงที่นี่
มันคืออะไร?
>> ผู้ชม: ชั่วคราว
ZAMYLA จัน: อุณหภูมิ
เพื่อให้เราสามารถเขียนสิ่งเหล่านี้
กลยุทธ์ที่ดีเหล่านี้ เป็นเพียงการหา
สิ่งที่เปลี่ยนแปลงเพราะส่วนใหญ่มักจะ มีเพียงสิ่งเดียวที่
จะเปลี่ยนที่จุดใดก็ตาม, OK?
อุณหภูมิดังนั้นเราจึงได้รับมอบหมาย
>> ตอนนี้จุดต่อไปของเราห้าเรา ได้ทำให้ดาวเท่ากับดาวข
ดังนั้นการเปลี่ยนแปลงสิ่งที่ตอนนี้หรือไม่
>> ผู้ชม: สตาร์
>> ZAMYLA จัน: STAR ดังนั้น ทุกสิ่งทุกอย่างยังคงเหมือนเดิม
และสิ่งที่ไม่เท่ากันดาว?
>> ผู้ชม: 2
ZAMYLA จัน: 2
น่ารัก
น่ากลัว
ตกลงแล้วตอนนี้เรามี เริ่มต้นขเท่ากับอุณหภูมิ
ดังนั้นการเปลี่ยนแปลงสิ่งเดียวที่เป็นดาวข
ทุกสิ่งทุกอย่างยังคงเหมือนเดิม
และสิ่งที่เป็นดาวขเท่ากับตอนนี้หรือไม่
และคุณเสร็จสิ้นตาราง
เพราะตอนนี้ในตอนท้ายถ้าเราบอกว่า x และ y เรารู้ว่าที่จุดลินี้
เรารู้ว่าเมื่อเรา เปลี่ยนดาว 2,
สิ่งที่ไม่เป็นก็กล่าวว่าตกลงที่ อยู่ที่นี่ 0x123 เปลี่ยน
ตอนนี้คือ 2
แล้วที่จุดนี้ เรากล่าวว่าตกลงไปที่ดาวข
เพื่อไปยังที่อยู่ที่ 0x127 และทำให้มัน 1
ดังนั้นตอนนี้ที่มากสิ้นสุดเมื่อ เราจริงกลับมาหลัก
เราจริงได้ว่า x เป็น เท่ากับ 2 และ y เท่ากับ 1
ทุกคนที่ดีกับที่?
ตกลงเย็น
หมายเลข 9
พวกคุณทำงานเกี่ยวกับเรื่องนี้
ฉันจะตั้งคณะกรรมการ เพื่อให้เราสามารถวาดผ่านมัน
มันจะระเบิด
ตารางขนาดใหญ่สามารถ น่ากลัวจริงๆฉันรู้ว่า
แต่ถ้าคุณแค่นำพวกเขาหนึ่งแถวที่ เวลาที่พวกเขาได้รับจำนวนมากที่น่ากลัวน้อยลง
สิทธิ์ทั้งหมด
>> เพื่อให้คุณรู้ว่านี้จะมี ผ่านหลักแรกใช่มั้ย?
เริ่มต้น x และ y และ จากนั้นก็พยายามที่จะแลกเปลี่ยนพวกเขา
ดังนั้นแม้การแลกเป็นข้างต้นทางจริงมัน ไปคือการที่เรากำลังจะผ่านหลัก
และจากนั้นก็โทรมา ขึ้นไปสลับขวาทั้งหมดหรือไม่
เพื่อให้ทุกคนรู้ว่า
>> เพื่อที่หนึ่งที่คุณทำ คนต้องการที่จะเริ่มต้นด้วย?
ใครแน่ใจจริงๆ เกี่ยวกับหนึ่งในเหล่านี้หรือไม่
หรือแม้กระทั่งการตรวจสอบบางส่วน?
ทำไมเราไม่เริ่มต้นด้วย X?
เราทำอะไรคิดว่า x คืออะไร?
>> ผู้ชม: 1
ZAMYLA จัน: 1
ดังนั้นแล้วทำไมคือ 2
และนั่นเป็นเพราะ ความแตกต่างใหญ่ที่นี่
คือว่าเราเป็นเพียง ผ่านเล่มในใช่มั้ย?
เราไม่ได้ผ่านการอ้างอิง
ดังนั้นแม้ในตอนท้ายของ โปรแกรมนี้ x และ y
ได้อยู่เหมือนกันเพราะพวกเขา เป็นเพียงสำเนาในการทำงานแลกเปลี่ยน
พวกเขาไม่ได้จริงเปลี่ยนใช่มั้ย?
>> ดังนั้นสิ่งที่เกี่ยวกับ A, B, และอุณหภูมิ?
>> ผู้ชม: เป็นข
>> ZAMYLA จัน: เป็นข
ดังนั้นในกรณีนี้คือ x ซึ่งเป็น 1 ใช่มั้ย?
ดังนั้นที่นี่เราเดินผ่านมัน
ดังนั้นที่จุดเริ่มต้น, และ b เป็นที่ 1 และ 2 และไม่ได้กำหนด
ดังนั้นอุณหภูมิเดิมได้รับ ได้รับมอบหมายให้ดังนั้นอุณหภูมิ 1
เท่ากับ b ดังนั้นเราได้รับ 2 และขเท่ากับอุณหภูมิ
ตอนนี้เราได้รับ 1
>> ผู้ชม: ในก่อนหน้านี้มันเป็นหนึ่ง x เครื่องหมายเปลี่ยนและเครื่องหมายและ
สิ่งที่ว่าหมายความว่าอย่างไร?
ZAMYLA จันดังนั้นนั่นหมายความว่า คุณผ่านโดยการอ้างอิง
ดังนั้นนั่นหมายความว่าคุณกำลังจริง ผ่านในที่อยู่ของสถ​​านที่
x และ y จะถูกเก็บไว้
ผู้ชม: แต่คุณไม่ได้ การแลกเปลี่ยนที่อยู่
ZAMYLA จัน: คุณไม่ได้ การแลกเปลี่ยนที่อยู่
คุณกำลังแลกเปลี่ยนสิ่งที่พวกเขาภายใน
เช่นเดียวกับสิ่งที่อยู่ที่นั้น และที่ว่าทำไมการทำงาน
เมื่อเทียบกับในโปรแกรมนี้ที่นี่สิ่งที่ คุณกำลังทำคือการที่คุณกำลังสร้างสำเนา
เพื่อให้คุณมี x และ y ที่มีอยู่ เป็นตัวแปรของตัวเองออกจากที่นี่
แต่แล้วเมื่อคุณผ่าน พวกเขาเข้าไปในการแลกก็
เช่นถ้าคุณกำลังสร้าง ชุดอื่น ๆ ทั้งหมดนี้
ดังนั้นคุณไม่เคยจริง สัมผัส x และ y
>> ผู้ชม: หากเครื่องหมาย x คือสิ่งที่ ที่อยู่ของ x สิ่งที่จะดาว x เป็นอย่างไร
>> ZAMYLA จัน: สัญลักษณ์ x คือสิ่งที่เป็นที่ ที่อยู่ของ x แล้ว star-- ดี
ในกรณีนี้ x ไม่ชี้
ผู้ชม: โอ้ตกลง
ดังนั้นคุณจะทำเช่นนี้ เพราะมันไม่ได้เป็นตัวชี้
ZAMYLA จันขวา
คุณจะทำดาว สิ่งที่เป็นตัวชี้
บางทีคุณอาจจะสามารถทำมันได้กับสิ่งที่ ไม่ได้ แต่รวบรวมที่คุณ
ไม่ว่าสิ่งที่บ้าที่จะเกิดขึ้น
และฉันไม่ได้ว่า แน่ใจว่าสิ่งที่จะเกิดขึ้น
คุณสามารถใช้ ที่อยู่ของบางสิ่งบางอย่าง
แต่คุณไม่สามารถ dereference บางสิ่งบางอย่างที่ไม่ชี้
หากที่ทำให้รู้สึกว่า ความแตกต่างที่ดีที่จะมี
>> จึงไม่เลวร้ายเกินไปใช่มั้ย?
ตารางที่มีความหวังว่า รับน่ากลัวน้อย
สิทธิ์ทั้งหมด
Ah, คนที่สนุก
ดังนั้นตอนนี้เขียนรหัสของคุณเอง
ดังนั้นฉันจะให้พวกคุณทำงาน เกี่ยวกับเรื่องนี้ประมาณสี่นาที
แล้วเราสามารถพูดคุย เกี่ยวกับวิธีการที่จะเข้าใกล้มัน
อย่าลังเลที่จะพูดคุยกับคนรอบตัวคุณ
นอกจากนี้เป็นที่น่าสนใจ
มันก็เหมือนผู้หญิงทุกคน ส่วนตอนนี้
ที่น่าตื่นเต้นสวย
ยกเว้นช้าง
แต่ช้างไม่ได้จริงๆส่วนหนึ่งของส่วน
น่ากลัว
สมบูรณ์
ดังนั้นผมจะให้คำแนะนำทั้งคู่
ในกรณีที่คุณมี มากกว่าตัวละครตัวหนึ่งที่
คุณมีบางสิ่งบางอย่าง เช่น 123 หรือ 1,000 บางสิ่งบางอย่าง
คุณจะต้องมีความสามารถที่จะห่วง ผ่านและแปลงแต่ละคน
จึงมีคู่ วิธีที่คุณสามารถทำอย่างนั้น
แต่คุณแน่นอนจะมี สำหรับวงที่ใดที่หนึ่งในนั้นจะห่วง
ผ่านพวกเขาซึ่งเป็น ชนิดเช่นของแถม
มีแม้กระทั่งถ้าคุณเรียก strlen, ซึ่งเป็นชนิดเช่นโอ้
บางทีคุณอาจต้องการที่จะใช้ความยาว ของสตริงในทางใดทางหนึ่ง
>> สิทธิ์ทั้งหมด
ดังนั้นสิ่งที่พวกคุณคิดว่าอาจจะ หนึ่งในสิ่งแรกที่เราต้องการจะทำอย่างไร?
มีกรณีที่ทั้งคู่อยู่ในที่นี่ เราจำเป็นต้องคิดใช่มั้ย?
ทั้งที่เรามีสิ่งที่เป็นโมฆะ
ทำในสิ่งที่เรามี?
กรณี
โมฆะ
เรามีกรณีที่มี สิ่งอื่น ๆ กว่า 09 ใช่มั้ย?
ดังนั้นสมมติว่ามันมีตัวอักษร
หรือเรามีกรณีที่ที่ถูกต้อง
กรณีที่สามจะคิดว่า
ดังนั้นที่หนึ่งที่คุณคิดว่าอาจจะเป็น หนึ่งที่ง่ายที่สุดที่จะดูแลครั้งแรก?
ผู้ชม: Null
ZAMYLA จัน: กรณีที่เป็นโมฆะ
ดังนั้นสิ่งที่เราจะทำอะไรที่นั่น?
ผู้ชม: [ไม่ได้ยิน]
ZAMYLA จัน: ใช่
และสิ่งที่ฉันต้องการจะทำอย่างไร?
>> ผู้ชม: 0 กลับ
>> ZAMYLA จัน: แน่นอน
น่ากลัว
ตกลง
ดังนั้นตอนนี้กรณีที่มีตัวอักษร และกรณีที่ว่ามันเป็นที่ถูกต้อง
จริงเราสามารถดูแล นี้ภายในหนึ่งวง, OK?
ดังนั้นวิธีหนึ่งที่จะทำพูดไปสิ่งที่อาจจะ วิธีง่ายๆในการตรวจสอบว่าเป็นที่ถูกต้อง
เราจะต้องผ่านไป แต่ละตัวอักษรและทำในสิ่งที่?
>> ผู้ชม: ตรวจสอบว่าเป็น in--
>> ZAMYLA จันขวาคุณสามารถตรวจสอบ ถ้าหากมันเป็นระหว่าง 0 และ 9 ใช่มั้ย?
แล้วในกรณีที่ ว่ามันเป็นที่ถูกต้องเราไม่
จะจบลงทำซ้ำผ่าน สายของเรา anyways ใช่มั้ย?
ดังนั้นเราไม่พยายามที่ทำไมและ รวมพวกเขาเป็นหนึ่งใน
เรากำลังจะไปย้ำ ผ่านสายออกและในขณะที่เรา
ทำอย่างนั้นเรากำลังจะเป็นครั้งแรก จะตรวจสอบเพื่อดูว่าจดหมายฉบับนั้น
หรือถ้าตัวละครที่ถูกต้อง
ถ้าเป็นเรากำลังจะดำเนินการ การดำเนินงานที่เราจำเป็นต้องแปลงเป็น
มิฉะนั้นก็จะกลับ 0 ใช่มั้ย?
>> ดังนั้นก่อนที่เราจะทำอย่างนั้นเรา อาจต้องการตัวแปรบาง
ที่เราจะได้กลับมาในตอนท้าย ที่จะเป็นค่าที่แท้จริงของเรา
ดังนั้นเรากำลังจะเริ่มต้น ค่าบางอย่างที่จะเป็น 0
และนี่เป็นเพียงวิธีการที่เราเริ่มต้น
ดังนั้นฉันจะกำจัดนี้
ดังนั้นเราจะไป ย้ำผ่านสายนี้
ผู้ชม: สำหรับวง
ZAMYLA จัน: การห่วง
ดังนั้นสิ่งที่สำหรับของเราหรือไม่
>> ผู้ชม: ฉันเป็น 0
ZAMYLA จัน: MM-HM
และสิ่งที่เราทำซ้ำจนกว่า?
>> ผู้ชม: ระยะเวลา Str ของ S
>> ZAMYLA จัน: ตกลงตอนนี้จำได้ว่า มีวิธีที่ดีกว่า [ไม่ได้ยิน]
>> ผู้ชม: ใช่เราสามารถทำ n เท่ากับ
ZAMYLA จัน: แน่นอน
>> ผู้ชม: ฉันมีค่าน้อยกว่า n
ZAMYLA จัน: และทำไม เราต้องการที่จะทำเช่นนั้น?
คุณจำเหตุผลหรือไม่
ผู้ชม: เราต้องคำนวณมัน
ZAMYLA จัน: becasue แบบที่คุณ เพียง แต่มีการคำนวณ strlen ครั้ง
ฉันถ้าคุณทำน้อยกว่า strlen วินาที, ที่หมายความว่ามันคำนวณ
ระยะเวลาทุกครั้ง คุณเรียกใช้สำหรับห่วง
ซึ่งไม่ได้เป็นค่าใช้จ่ายมาก ของพลังงาน แต่ก็
การปฏิบัติที่ดีกว่าที่จะพยายาม ทำสิ่งที่ต้องการที่ครั้งหนึ่งเคย
เว้นแต่บางทีคุณอาจมีสตริงบ้า ที่มีการเปลี่ยนแปลงที่ย้ำทุก
แต่ถ้ามันอยู่ที่เดียวกันบันทึกไว้
สิทธิ์ทั้งหมด
และแล้วฉันบวกบวก
น่ากลัว
เราอยู่ในทางของเรา
ผู้ชม: จริงได้อย่างรวดเร็ว
ครั้งแรกจึงขอบอกว่าเราเพียงแค่ ฉันไม่น้อยกว่า strlen ของวินาที,
พวกเขาให้คะแนนเราในการออกแบบ ที่ทั้งหมดหรือเพียงแค่ความถูกต้อง?
พวกเขาไม่ได้
เรามีการจัดลำดับที่ถูกต้อง สำหรับแบบทดสอบเท่าที่ผมรู้
ฉันไม่สามารถทำให้เต็ม การรับประกัน แต่สำหรับส่วนใหญ่
ส่วนใหญ่เป็นความถูกต้องเพราะ คุณอยู่ภายใต้จำนวนมากที่มีข้อ จำกัด ด้านเวลา
การออกแบบมักจะหมายถึง คุณมีเวลาที่จะคิด
เกี่ยวกับความสง่างามของสถ​​านการณ์ของคุณ
>> ตกลงดังนั้นเราวนผ่าน
ดังนั้นเราจึงจำเป็นต้องตรวจสอบอย่างใดอย่างหนึ่งที่จะ ดูว่าตัวละครตัวนี้มีผลบังคับใช้
หรือถ้าเราสามารถดำเนินการของเรา ปกติ [? กับฉัน?] ฟังก์ชั่น
เราสามารถกังวลเกี่ยวกับสิ่งที่ ที่อยู่ในที่สอง
ดังนั้นเราไม่ take-- ทำไม ถ้าใครสามารถคิด
เกี่ยวกับวิธีการตรวจสอบเพื่อ ดูว่านี้มีผลบังคับใช้
เรารู้ว่ามันเป็นไปได้ ถ้าเงื่อนไขบางอย่างใช่มั้ย?
และจำไว้ว่านี่คือ ใน ASCII ดังนั้นวิธีการที่อาจจะ
เราเห็นว่ามันไม่ได้ 0,1, 2, 3, 4, 5, 6, 7, 8, 9
ผู้ชม: ถ้าอัลฟา
>> ZAMYLA จัน: ดังนั้นถ้าอัลฟาจะ เพียงแจ้งให้เราทราบว่าเป็นจดหมาย
และถ้าพวกเขาให้เราเป็นสัญลักษณ์ก็ ยังไม่มากจะไปตรวจสอบ
ดังนั้นหากคุณดึงขึ้น ASCII ของคุณ ตารางที่เรารู้ว่า 0 ถึง 9
อยู่ในส่วนหนึ่งของ
บอกตัวเลขที่พวกเขา สอดคล้องกับถ้าเป็นไปได้
ผู้ชม: 40
>> ZAMYLA จัน: ดังนั้นช่วงเป็นเหมือน 40--
ผู้ชม: บางที
48-57
ฉันไม่แน่ใจ
>> ZAMYLA จัน: 40-57?
>> ผู้ชม: 48 ผมคิดว่า
ZAMYLA จัน: 48-57
ดังนั้นเราจึงรู้ว่า ASCII ที่ symbols-- ถ้าค่า ASCII ไม่
ระหว่าง 48 และ 57, มันไม่ถูกต้องใช่มั้ย?
เพื่อให้เราสามารถใช้ที่ ประโยชน์ของเราอาจจะเป็น?
เราจะไปรับ จดหมายฉบับนี้ออกครั้งแรก?
เรามีวิธีการเข้าถึง นี้ตัวละครตัวนี้?
>> ผู้ชม: S วงเล็บฉัน
>> ZAMYLA จัน: MM-HM
เพราะเราสามารถคิด สตริงเป็นอาร์เรย์จำ
ดังนั้นเราจึงทำในสิ่งที่อยากจะบอก?
เราอยากจะบอกว่านี้ เท่าไหร่ฉันจะให้คำแนะนำ
มันน้อยกว่า
สิ่งที่คุณคิดว่ามัน จะต้องน้อยกว่า?
ผู้ชม: 57?
>> ZAMYLA จัน: 47 ใช่มั้ย?
แต่มันก็ยังเป็นที่ที่คุณ 0 ใน [เดียว? ซี่?] เพราะนั่นคือ
ตัวอักษร 0
นอกจากนี้คุณยังสามารถใส่ 47
มีตาราง ASCII เป็น คุณเห็นบางสิ่งบางอย่างเพียง
คุณควรจะมีบนแผ่นทดสอบของคุณ
>> ดังนั้นถ้าเป็นกรณีนี้ถ้ามัน น้อยกว่า 0-- ไม่จำเป็นและ
มันเป็นเพียงอย่างใดอย่างหนึ่งจะเป็น น้อยกว่าหรือมากกว่า 9
เพื่อให้คุณสามารถกรอกสุดท้ายสำหรับฉันหรือไม่
ดังนั้นหรือของฉันคือสิ่งที่นกกระจอกเทศ?
>> ผู้ชม: มากกว่า 9
>> ZAMYLA จันทร์: มี
ไม่ว่าทำให้รู้สึกถึง ทุกคนวิธีการที่เราไปถึงที่นั่น?
ปัญหาเหล​​่านี้ที่พวกเขาต้องการเมื่อคุณ เห็นการแก้ปัญหามันก็เหมือนโอ้ตกลง
และนี่คือเหตุผลที่การปฏิบัติจะช่วยให้คุณ
OK เพื่อให้เรากลับ 0
น่ารัก
สิทธิ์ทั้งหมด
มิฉะนั้นเราทำในสิ่งที่ต้องการจะทำอย่างไร
นี้เป็นส่วนที่น่าสนใจ ที่มันน้อยมาก
เช่นคณิตศาสตร์เมื่อเทียบกับลูกค้าในความคิดของฉัน
ไม่มีใครมีความคิด ของวิธีการที่เราอาจจะทำเช่นนี้?
ดังนั้นสิ่งสำคัญที่ต้อง ตระหนักคือตัวอักษรตัวแรก
เรากำลังเป็นไปได้ เพื่อหลักสูงสุดใช่มั้ย?
ดังนั้นหากเรากำลังมองหาที่แปลง 123, ครั้งแรกที่เราย้ำ
เป็นไปได้ที่ 1 แต่เราจำเป็นต้อง ที่ให้เป็น 100 โดยท้ายที่สุดใช่มั้ย?
ดังนั้นสิ่งหนึ่งที่คุณสามารถทำได้คือการที่ กับทุกหลักถัดไป
คุณใช้เวลาคุณคูณค่าของคุณโดย 10 เพื่อให้ตามเวลาที่คุณถึงจุดสิ้นสุด,
ทุกอย่างที่ได้รับ ขยับขึ้นไปใช่มั้ย?
>> ดังนั้นครั้งแรกที่คุณใช้ คุณมี 1 เป็นค่าของคุณ
ครั้งที่สองที่คุณเรียกมันคุณ คูณค่าของคุณโดย 10
ก็จะทำการปรับปรุงเพื่อที่จะตอนนี้ 10 และคุณเพิ่มมูลค่าต่อไปของคุณ
แล้วคุณคูณว่า 10 และเพิ่มมูลค่าต่อไปของคุณ
และนี่คือเหตุผลที่พวกเขาพูดแบบนี้ เป็นมากขึ้นเช่นการทดสอบ
อัลกอริทึมคณิตศาสตร์เมื่อเทียบกับ CS แต่ผมพูดนอกเรื่อง
ผมไม่ได้เขียนแบบทดสอบ
>> ดังนั้นสิ่งหนึ่งที่เราสามารถทำได้คือเรา พูดครั้งที่ค่าเท่ากับ 10
ดังนั้นนี้จะเปลี่ยน หลักของคุณอีกครั้งทุกครั้ง
แล้วเราเพียงแค่ต้องการที่จะเพิ่ม
เราต้องการที่จะเพิ่มในสิ่งที่ เราเพิ่งได้ใช่มั้ย?
ดังนั้นวิธีการที่เราทำจริงแปลงของเรา อักขระ ASCII เป็นจำนวน
ว่ามันแสดงให้เห็นถึง?
>> ดังนั้นเราจึงรู้ว่า 0 เท่ากับ 47 ใช่มั้ย?
ดังนั้นถ้า 0 เป็น 47 สิ่งที่ เราจะต้องทำอย่างไรกับมัน
ที่จริงทำให้มันเป็น int จาก 0?
>> ผู้ชม: มันเป็น 48
ZAMYLA จัน: 48?
ขอโทษ
เราจะลบ 48 ใช่มั้ย?
โปรดจำไว้ว่า ASCII คณิตศาสตร์?
เราสามารถรักษาพวกเขาเพียงแค่ เช่นหมายเลขปกติ
ถ้าคุณปฏิบัติต่อพวกเขาเช่นเดียวกับตัวเลข พวกเขากลายเป็นตัวเลขได้อย่างมีประสิทธิภาพ
ดังนั้นถ้าเรามีของผมที่ขอ พูดในกรณีนี้เท่ากับ 0
ดังนั้นของฉันในกรณีนี้ จะ ASCII--
int ASCII มันจะเป็น 47
เพื่อให้เราสามารถ subtract-- หรือ 48
คุณสามารถทำเช่นนั้นเป็นวิธีหนึ่ง
ไม่มีใครรู้ดีกว่า วิธีที่เราสามารถทำอะไรได้ 48?
เราเพียงแค่บอกว่า 0 เป็นเท่าไหร่เข้าไป ASCII คุณสามารถทำใบเสนอราคา 0
ดังนั้นชนิดของมันทำให้ ความรู้สึกวิธีการทำงานนี้หรือไม่?
>> ผู้ชม: ณ จุดนี้เป็นค่า 0 เพราะแม้ว่าคุณจะคูณด้วย 10
คุณกำลังเริ่มออกกับศูนย์ ดังนั้นควรจะเปลี่ยน?
>> ZAMYLA จัน: ดังนั้นในกรณีนี้คุณ ต้องการที่จะคูณมันก่อนที่คุณจะเพิ่ม
เพราะในกรณีนี้ใช่ว่ามันจะ ยังคง be-- ตัวชี้ของฉันจะหายไป
ค่าในกรณีนี้เป็นครั้งแรก เวลาที่เราใช้มันจะเป็นศูนย์
ดังนั้นคุณเพียงแค่เพิ่ม ว่าหลักแรก
สิ่งที่สำคัญคือในครั้งต่อไป คุณย้ำที่คุณต้องการที่จะเปลี่ยนมันได้
ก่อนที่คุณจะเพิ่มหลักถัดไปของคุณที่
ไม่ว่าชี้แจงสำหรับคุณ?
ตกลง
>> บางครั้งคุณกำลังจะไป ได้รับสิ่งที่แปลกมากขึ้น Mathy
ถ้าคุณได้มากที่สุด นี้คุณยังจะ
เพื่อ get-- คุณกำลังจะไปทำสวยดี
เครดิตบางส่วนเป็นอย่างมาก สิ่งที่ใหญ่ใน CS50 แบบทดสอบ
เพื่อเขียนสิ่งที่คุณรู้
หากคุณได้ทุกอย่าง ยกเว้นที่นี่คุณจะ
ยังจะทำ ดีจริงๆปัญหา
เพราะคุณกำลังแสดง ตกลงฉันเกือบจะรู้ว่า
ฉันรู้ว่าฉันต้องย้ำผ่าน
ฉันรู้ว่าสิ่งที่ฉันต้องการที่จะตรวจสอบ
ผมแค่ทำไม่มาก ได้รับการแปลงเป็น
คุณกำลังจะตกลง
ใช่คุณกำลังจะไป สูญเสียจุดคู่
แต่คุณยังจะได้รับ ตัวเลขที่ดีของจุดบางสิ่งบางอย่าง
เช่นว่าถ้าคุณ เหล่านี้หายไปสองบรรทัด
ฉันจะเป็นเช่นตกลงคนนี้ รู้ว่าสิ่งที่พวกเขากำลังทำ
คณิตศาสตร์เป็นเรื่องยาก
ดังนั้นผมจะบอกว่าคุณต้องการจะปรับ
>> OK เพื่อให้พวกคุณพร้อมที่จะ ลอง strlen กับคำแนะนำนี้
ที่พวกคุณมีต้นแบบตัวชี้?
ดังนั้นฉันจะให้พวกคุณทำงาน ที่ว่านิด ๆ หน่อย ๆ
หากใครต้องการทบทวน
ดังนั้นคุณจึงต้องการที่จะใช้ตัวชี้ คณิตศาสตร์และแล้วถ้า S เป็น null
การดำเนินการของคุณควรกลับ 0
สิ่งนี้ที่ทำให้คุณ มีความสุขจริงๆที่จะเพียงโทร strlen
ณ สิ้นวัน
ผมคิดว่าคนนี้อาจจะน้อย ง่ายกว่าคนสุดท้ายซึ่ง
เป็นสิ่งที่ดี
ฉันจะให้พวกคุณอีกนาที, และจากนั้นเราจะทำงานผ่านมัน
และจากนั้นเราจะได้ไปที่สวิทช์
>> ตกลงคนพร้อมหรือยัง?
อาจจะนิด ๆ หน่อย ๆ
ดังนั้นผมจึงได้ให้คุณของคุณ สองตัวเลือกใช่มั้ย?
ทั้งตรวจสอบโมฆะและกลับ 0 ถ้า มันเป็นจริงหรือคำนวณความยาว
ดังนั้นผู้ที่ต้องการที่จะเขียนตรวจสอบ null?
ไปมัน
>> ผู้ชม: หากวงเล็บ S เท่ากับเท่ากับ null return 0
ZAMYLA จัน: น่ารัก
ฉันรักเมื่อครึ่งปัญหาของคุณได้ เป็นเพียงการตรวจสอบเป็นโมฆะ
ฉันรู้ว่ามีพวกคุณที่ผ่านมา สัปดาห์ผมก็เหมือนกับการตรวจสอบเป็นโมฆะ
ตัวอักษรทุกครั้ง
ตกลง so--
>> ผู้ชม: 0 หากผลตอบแทนเ​​ป็นเพียงหนึ่งบรรทัด เรายังคงต้องวงเล็บปีกกา?
>> ZAMYLA จัน: คุณทำไม่ได้ในทางเทคนิค ต้องการพวกเขาตราบเท่าที่คุณกำลังที่สอดคล้องกัน
มันเป็นเพียงการปฏิบัติที่ดี ที่จะได้รับในนิสัย
ของการใช้วงเล็บปีกกา, แต่ในทางเทคนิคไม่มี
คุณไม่จำเป็นต้องพวกเขาสำหรับหนึ่งบรรทัด
เราก็มักจะแนะนำให้มัน สำหรับคนที่เริ่มต้นในการเขียนโปรแกรม
>> ดังนั้นตอนนี้สิ่งที่เราอาจต้องการที่จะทำที่นี่?
ดังนั้นตอนนี้เรารู้ว่าสายของเราถูกต้อง
เราต้องการที่จะให้ระยะเวลาในการประมวลผล
สิ่งที่อาจจะเป็นครั้งแรก สิ่งที่เราต้องการจะทำอย่างไร?
>> ผู้ชม: สร้าง int ที่มีความยาว
ZAMYLA จัน: แน่นอน
ผู้ชม: และเราต้องการที่จะตั้งค่าให้?
ZAMYLA จัน: 0
สมบูรณ์
สิทธิ์ทั้งหมด
ตอนนี้สิ่งที่ต้องการจะทำอย่างไร?
นี้เป็นจริงจำนวนมากของมัน
ไปมัน
>> ผู้ชม: ดังนั้นคุณอาจจะทำสำหรับห่วง
แล้วตั้งแต่เมื่อคุณเรียก S คุณ ได้รับที่อยู่ของสิ่งแรกที่
คุณจะเริ่มต้นด้วยผมเท่ากับ 0
แล้วตราบใดที่ x บวกฉันไม่ได้กลับมาเฉือน 0
ZAMYLA จัน: เทอร์มิ null
ผู้ชม: เทอร์มิ null
แล้วคุณเพิ่มความยาว
>> ZAMYLA จัน: ใช่
OK เพื่อช่วยให้เปิดที่ เป็นรหัสที่เป็นรูปธรรมมาก
แต่นั่นเป็นความคิดที่สมบูรณ์แบบ
นั่นคือสิ่งที่เรากำลังทำ
เรากำลังจะเป็น iterating ผ่านด้วยตัวชี้
ดังนั้นสิ่งที่เราต้องการจะทำ เป็นแทน int
ที่นี่เพราะเรา ไม่ได้หมายถึงมัน
เรากำลังหมายถึงการเริ่มต้นของ สตริงที่เริ่มต้นการเป็นอยู่บางส่วน
ใช่มั้ย?
>> ดังนั้นเราจึงต้องการชี้
ดังนั้นเรากำลังจะมีบางดาวถ่าน, เพราะมันสอดคล้องกับ S ของเราใช่มั้ย?
ดังนั้นนี่คือบางจุดเรากำลังเริ่มต้น ที่จะเริ่มต้นของสตริง, OK?
เพื่อให้เพียงฉันเรียกมันว่า
ถ้าหากมันเป็นจุดเริ่มต้นของสตริง สิ่งที่มันจะได้รับการมอบหมายให้?
ไม่ 0
เราต้องการให้เป็น เริ่มต้นของสตริงของเรา
สิ่งที่แสดงให้เห็นถึงจุดเริ่มต้นของ สตริงที่ได้รับมาให้เราของเราหรือไม่
>> ผู้ชม: เพ​​ียงแค
>> ZAMYLA จันทร์หน้า
ดังนั้นนี้จะสร้างบางตัวชี้ใหม่ที่ แสดงให้เห็นถึงจุดเริ่มต้นของสตริงของเรา, OK?
อีกวิธีหนึ่งที่จะคิดว่ามัน ก็เหมือนที่นี่เป็นอาเรย์ของเรา
นั่นเป็นสตริงของเรา, S
ดังนั้นสมมติว่านี่คือ จุดแรกและนี่คือ 0x4
04
นี่คือ S ซึ่งถือที่อยู่ที่เรา
และเราก็สร้างอีกคนหนึ่งที่เรียกว่า ผมว่าเพียงหมายถึงสิ่งเดียวกัน
ดังนั้นพวกเขากำลังทั้งสองอย่างเพียงชี้ ที่จะเริ่มต้นของสตริงของเรา
นี่เป็นเพียงการแสดงภาพ
>> ดังนั้นตอนนี้สิ่งที่เราต้องการ ทำคือเราต้องการที่จะย้ำ
เงื่อนไขของเราสำหรับการทำซ้ำ ผ่านสายของเรา
ตอนนี้ช้อปปิ้ง
ได้ไปซื้อพวก
คือเราต้องการที่จะให้การปรับปรุงจน เราไปถึงเทอร์มิ null ใช่มั้ย?
ดังนั้นสิ่งที่อาจจะมีลักษณะอย่างไร
เราต้องการผมหรือทำเราต้องการ ดาวฉันคือคำถาม?
เป็นเทอร์มิ null อยู่ หรือสิ่งที่อยู่ที่อยู่?
ตั้งอยู่ที่อยู่ใช่มั้ย?
>> ดังนั้นเราจึงจำเป็น dereference อะไรที่เป็น นี่เพราะนี้เป็นเพียงบางส่วนที่อยู่
ที่จะได้รับจริงจะเริ่ม เราจำเป็นต้อง dereference นี้
เพื่อที่เราจะได้รับจริง สิ่งที่อยู่ในสถานที่แรกนี้
ดังนั้นหากเราทำดาวฉันสิ่งที่ เราไม่อยากให้มันเท่ากัน?
ผู้ชม: กลับเฉือน?
>> ZAMYLA จันทร์: มี
ไม่ว่าทำให้ความรู้สึกที่ทุกคนหรือไม่
เราต้องไปเป็นสตริงของเราและ ตรวจสอบให้แน่ใจว่ามันเป็นไม่สิ้นสุด
และจากนั้นเราก็สามารถปรับปรุงเช่นนี้
การปรับปรุงปกติ
ดังนั้นตราบใดที่เหล่านี้ พบสิ่งที่เราต้องการจะทำอย่างไร?
>> ผู้ชม: ความยาวบวกบวก
>> ZAMYLA จัน: MM-HM
และแล้วหลังจากที่ห่วง ยุติสิ่งที่เราต้องการที่จะกลับมา?
ผู้ชม: ความยาว?
ZAMYLA จัน: ความยาว
มีคุณไป
เห็นได้ชัดว่าเนื้อของคนนี้ คือการทำความเข้าใจนี้สำหรับวง
ทุกคนได้รับวิธีที่ทำงาน?
ฉันมีความสุขที่จะไปมากกว่านั้นอีกครั้ง
>> ผู้ชม: สอง ส่วนหนึ่งเพื่อดาวฉันมี
ที่อยู่ของ first--
ZAMYLA จัน: มันไม่ได้อยู่
มันเป็นสิ่งที่เป็นที่
ผู้ชม: ที่จริงในนั้น
ZAMYLA จัน: นั่น สิ่งที่เป็นจริงในการมี
ดังนั้นนี่คือ saying-- ให้ ฉันจะทำให้ดีกว่านี้
ดังนั้นนี่คือ 0x04 และฉันแค่ไป ที่จะบอกว่าฉันจะทำให้ชื่อของฉัน
ตกลง
ใช่ฉันรู้ว่าฉันมีการตรวจสอบแบบทดสอบคืนนี้
จำนวนมากของการตรวจสอบแบบทดสอบ
ดังนั้นสมมติว่าสายนี้ เป็นชื่อแอลลิสันของฉัน
เล็ก ๆ น้อย ๆ ยุ่ง แต่ก็มี
และ S แทนตำแหน่ง ของที่สตริงเริ่มต้น
ดังนั้นฉันจะทำนี้ real-- นี้เป็นที่อยู่ของ,
ที่สตริงเริ่มต้นใช่มั้ย?
>> ดังนั้นสิ่งที่เราทำนี่คือเราต้องการที่จะ ใช้ตัวชี้ไปยังย้ำผ่าน
ดังนั้นเราจึงสร้างตัวชี้บางอย่างผมที่ยัง เท่ากับเริ่มต้นของสตริง
และในแต่ละจุดที่เราต้องการ ดำเนินการต่อไปจะผ่านอาร์เรย์
ที่นี่จนกว่าเราจะตีเทอร์มิ null
ดังนั้นเราจึงมักจะต้องการตรวจสอบว่ามีอะไร ในแต่ละที่อยู่เหล่านี้
>> ฉันดังนั้นเรา dereference เพื่อให้ ครั้งแรกที่เราทำมันเรา
บอกว่าตกลงอะไรที่ 0x04 อยู่?
มันเป็น
ตกลงเราไม่ดี
มีความยาวเพิ่มขึ้น
ย้ายไปที่หน้าหนึ่ง
ดังนั้น i-- จำชี้เพิ่มขึ้น ขนาดของสิ่งที่พวกเขากำลังชี้ไปที่
ดังนั้นในกรณีนี้เนื่องจากเป็น ถ่านก็จะอัปเดตโดยหนึ่ง
ดังนั้นตอนนี้เรากำลังจะไปดูที่ 5, ซึ่งหมายความว่ามันจะไปที่นี่
ดังนั้นจึงกล่าวว่าตกลงไปที่ 0x05
มีอะไรอยู่ในนั้น?
มันเป็นลิตร
และมันจะให้ทำแบบนั้น จนฮิตนี้
และกล่าวว่าตกลงสิ่งที่อยู่ใน สิ่งที่อยู่นี้คืออะไร?
เทอร์มิโมฆะตกลง
ทางออก
และเพิ่งกลับมามีความยาว
เพราะคุณต้องสิ่งที่เป็นจริงที่ ว่าที่อยู่ไม่อยู่ที่ตัวเอง
>> มีน้อยมากสถานที่ที่มี คุณจำเป็นต้องมีที่อยู่
ส่วนใหญ่เวลาที่เมื่อ คุณกำลังใช้และเป็น
เมื่อคุณเป็นครั้งแรก การกำหนดตัวชี้หรือเมื่อ
คุณผ่านมันในการทำงานอีก
ตกลงทุกคนที่ดีมี?
ชนิดของ?
ตกลง
>> เพื่อให้ดูเหมือนว่าเราได้ ได้ประมาณ 12 นาทีที่เหลือ,
ดังนั้นเราจะไป อาจเกิดปัญหาที่ผ่านมาของเรา
แล้วมีใด ๆ แนวคิดที่ได้มา
ในขณะเดียวกันเราสามารถทำได้ ได้อย่างรวดเร็วกว่าไปที่
>> ดังนั้นการเปลี่ยนเกียร์เป็นครั้งสุดท้าย ปัญหาที่นี่สลับงบ
เพื่อให้งานของคุณคือการเขียนนี้ เพื่อที่ว่ามันจะทำงานเดียวกัน
แต่ไม่ได้ใช้สวิทช์
มือจั๊วะ
ดังนั้นคำถามใด ๆ เกี่ยวกับเรื่องนี้ปิดค้างคาว?
ไม่มี?
ตกลง
ทุกคนเข้าใจว่าถ้า กรณีที่ไม่ได้มีอะไรหลังจากนั้น
ก็หมายความว่ามันควรจะเป็น ทำตามขั้นตอนต่อไปหรือไม่
ดังนั้นกรณีที่ 1 และ 2 ในกรณีนี้ ทำสิ่งเดียวที่แน่นอน
บางครั้งจุดของความสับสน
>> สิทธิ์ทั้งหมด
ทุกคนมีความคิดใด?
ใช่?
>> ผู้ชม: เพ​​ื่อให้คุณได้ เพียงแค่ทำอย่างไรถ้างบ
>> ZAMYLA จัน: MM-HM
ดังนั้นสิ่งที่เป็นหนึ่งในครั้งแรกของเรา?
>> ผู้ชม: ถ้า n เท่ากับเท่ากับ 1, และ 2 สายหรือ n เท่ากับ
เท่ากับ 2 แล้วพิมพ์ขนาดเล็ก
และจากนั้นคุณสามารถทำอื่นถ้า?
หรือคุณสามารถเพียงแค่ทำถ้า?
>> ZAMYLA จัน: คุณสามารถทำอื่นถ้า?
>> ผู้ชม: มันจะสำคัญว่าคุณจะทำอย่างไรถ้า?
ZAMYLA จันดังนั้นมันไม่
ไม่ anyone-- เช่นนั้นคุณ จะได้รับผลเดียวกัน
หากคุณใช้เพียงเมื่อเทียบกับไอเอฟเอ หากคุณใช้อื่นไอเอฟเอ
พวกคุณสามารถคิดเหตุผล ทำไมคุณอาจต้องการที่จะใช้ที่อื่น
ถ้าเทียบกับจำนวนมากของไอเอฟเอ?
ได้อย่างมีประสิทธิภาพ
ใช่?
>> ผู้ชม: มันจะตรวจสอบ ไอเอฟเอทั้งหมดทุกครั้ง
>> ZAMYLA จัน: ดังนั้นแม้ว่า มันตีนี้คนแรก
มันจะไปในการตรวจสอบทุกคนอื่น ๆ
ดังนั้นคุณจึงต้องการที่จะใช้ถ้าอื่นไอเอฟเอในกรณีที่ ที่มีเพียงหนึ่งของพวกเขาจะเคยใช้
ดังนั้นการยกเว้นร่วมกันเป็น สิ่งที่เรามักจะพูดว่า
หากคุณมีพวงของไอเอฟเอก็หมายความว่า ว่าอาจจะมากกว่าหนึ่งของพวกเขา
เรื่องและอาจจะมากกว่า หนึ่งของพวกเขาสามารถเป็นจริง
และคุณต้องการทั้งของพวกเขา ที่จะดำเนินการหากพวกเขากำลังจริง
ถ้าคุณเพียงต้องการหนึ่งของพวกเขาในการทำงาน ในกรณีที่พิเศษร่วมกันเหล่านี้
คุณต้องการใช้อื่นถ้าเพราะ มีทุกอย่างที่จะทำอย่างมีประสิทธิภาพ
รหัสของคุณเป็นเพียงการออกแบบที่ดีขึ้น ถ้ามันเป็นไปตามการปฏิบัติเช่นนี้
ดังนั้นในกรณีนี้เราจะต้องอื่นถ้า
และเรื่องนี้จะเป็นอย่างไร
>> ผู้ชม: n เท่ากับเท่ากับ 3
ZAMYLA จันเพอร์เฟ
สื่อพิมพ์
แล้วของเราที่ผ่านมา กรณีที่สิ่งที่เรามี?
อื่นหรืออื่น ๆ ถ้า?
ผู้ชม: อื่น ๆ
>> ZAMYLA จัน: เรา want-- คุณต้องการ อื่นถ้าเพราะเรามีกรณีที่เป็นรูปธรรม
มันไม่ได้เป็นชนิดของการจับทั้งหมด
ถ้าคุณได้เริ่มต้นใน switch-- จำได้ว่าในสวิทช์ที่คุณสามารถมีกรณี
และจากนั้นคุณต้องเริ่มต้น
ถ้าคุณได้เริ่มต้นที่ชนิด ของคำสั่งอื่น ๆ ที่คุณมี
แต่ถ้ามันมีกรณีเท่านั้น นั่นหมายความว่าคุณจะต้อง
ตรวจสอบเพื่อดูว่าแต่ละคน
ดังนั้นในกรณีนี้ก็จะ 4 หรือ 5
เราต้องการพิมพ์ออก
มันมีขนาดใหญ่
และมีคุณไป
และที่จะโปรแกรมของคุณ
>> ดังนั้นในกรณีนี้ถ้าเรา มีอะไรบางอย่างเริ่มต้น
เราจะมีที่อื่นใน สิ่งที่มันต้องการให้เราทำ
เพื่อให้เป็นความแตกต่างที่ดี รู้ที่จะเข้าใจ
จะช่วยให้ไม่มีสวิทช์สำหรับคุณ?
สมบูรณ์
สิทธิ์ทั้งหมด
>> เราได้ประมาณแปดนาทีที่เหลือ
ทำพวกคุณได้ใด ๆ แนวความคิดในระดับสูงอื่น ๆ
คำถามในทั่วไป?
ใช่?
>> ผู้ชม: ฉันมี คำถามเกี่ยวกับหนึ่งของพวกเขา
ที่เกี่ยวกับการสุ่ม เครื่องกำเนิดไฟฟ้าจำนวนแบบทดสอบศูนย์
ZAMYLA จัน: โอ้หนึ่งที่
หนึ่งที่เป็นอีกคนหนึ่งที่ มันเป็นคณิตศาสตร์มากขึ้น than-- ใช่
การแก้ปัญหาที่จะ that-- แม้ฉันเมื่อ ฉันเห็นมันฉันต้องการสิ่งนี้
>> ผู้ชม: มันเป็นหมายเลข 7
>> ZAMYLA จัน: มันแปลกในความคิดของฉัน
ดังนั้นโดยทั่วไปคุณต้องการ ที่จะใช้ drand48 ซึ่ง
จะให้คุณบาง ตัวเลขระหว่าง 0 และ 1
และคุณต้องการที่จะใช้มันเพื่อ ที่คุณได้รับอย่างใดเเรก
และมันก็เป็นมากขึ้นของปัญหาทางคณิตศาสตร์ กับผมมากกว่าที่ผมคิดว่าเป็นปัญหา CS
>> วิธีการที่คุณทำและพูดไป บางครั้งมันก็จะเป็นเช่นนั้น
อีกครั้งเหล่านี้ กรณีที่เป็นชนิด
ชอบสิ่งที่คุณเขียน สามารถและเครดิตบางส่วน
ดังนั้นถ้าเราต้องการกลับมา เรารู้ว่าเรากำลัง
จะใช้ drand48 ในบางวิธีใช่มั้ย?
ดังนั้นทำไมเราไม่ได้เป็นเพียงส่วนที่น้อยที่สุดที่ลง
เรากำลังใช้มันในทางใดทางหนึ่ง
วิธีการที่พวกเขามี พวกคุณใช้มันเป็น
เช่นนี้ซึ่งผมจะพยายามอธิบาย
>> ดังนั้นโดยทั่วไปสิ่งที่เกิดขึ้นที่นี่ เป็นเพราะมันเป็นระหว่าง 0 และ 1,
สิ่งที่คุณกำลังทำคือคุณคูณ คูณนี้เป็นอย่างมากคำถามคณิตศาสตร์
เพียงแค่ปฏิเสธเต็มรูปแบบนี้เป็น อย่างสมบูรณ์คำถามคณิตศาสตร์
สิ่งที่คุณกำลังทำคือ เพราะของ 0 และ 1 และคุณ
ต้องการให้เป็นภายใน ช่วงนี้คุณจริง
คิดออกว่ามีขนาดใหญ่ ช่วงนี้เป็นที่แล้ว
คุณโดยทั่วไปขนาดของมันขึ้น ซึ่งเป็นสิ่งที่จะทำนี้
>> ขลบช่วยให้คุณมีช่วงที่ ความแตกต่างระหว่างตัวเลขเหล่านั้น
คุณสามารถคูณระหว่าง 0 และ 1, แล้วเพิ่มเพียง
หมายความว่าการปรับขนาดของมันขึ้นมา เพื่อให้เป็นเรื่องระหว่าง A และ B
ซึ่งฉันไม่ชอบปัญหานี้
ที่ผมกล่าวว่าการตอบคำถามนี้ ที่มีความหมายรวมไปถึง
คนที่มีความสะดวกสบายน้อยลง ที่ไหนสักแห่งในระหว่าง
และสะดวกสบายมากขึ้น
ดังนั้นหากพวกเขาทำให้มัน ว่ามันเป็นบางสิ่งบางอย่าง
ว่าทุกคนที่น้อย สถานที่ที่จะได้รับความสะดวกสบาย,
เราจะมีมากเกินไป คนให้คะแนน perfects,
และสะดวกสบายมากขึ้นจะเบื่อ
>> ดังนั้นพวกเขาจึงมักจะมีเหล่านี้ ชนิดของคำถามช่วยพัฒนาสมอง
ที่มีความหมายที่จะเป็นเพียงเล็กน้อยยาก ที่ใช้ความคิดสร้างสรรค์
เมื่อคุณเห็นพวกเขา ไม่ได้นิ่งงันเกินไป
แน่นอนผมจะบอกว่าพลิก ผ่านการทดสอบครั้งแรกของคุณ
จัดการกับปัญหา ที่คุณรู้ว่าคุณสามารถจะทำได้
เพราะมีการใช้งานไม่มีการติดอยู่ ในการแก้ปัญหาเมื่อมีสาม
หรือสี่หรือห้าบ​​นหน้าเว็บ หลังจากที่คุณสามารถทำได้อย่างง่ายดาย
>> ผู้ชม: ทำไมสิ่งที่คุณทำ คูณโดยช่วง?
>> ZAMYLA จัน: คุณคูณช่วงที่ คุณ know-- มันก็เหมือนว่าหลังจากที่
ที่คุณต้องการ?
เพื่อให้คุณสามารถคิดเพราะมัน ส่งกลับจำนวนระหว่าง 0 และ 1,
คุณสามารถคิดว่ามันเป็นเปอร์เซ็นต์
ดังนั้นมันเป็นพื้นบอกว่าถ้าเรามี เส้นจำนวนของเราที่นี่อยู่ที่นี่
และ B อยู่ที่นี่
คุณชอบวิธีที่ผ่านมามากมันคืออะไร?
คือทั้งหมดที่เรากำลังทำ
ดังนั้นคุณเพียงแค่ขอให้ ร้อยละของช่วงนี้ซึ่ง
คือสิ่งที่จะให้คุณ
แล้วคุณพื้นเพียง ขนาดมันขึ้นโดยการเพิ่ม
มันเป็นเครื่องช่วยพัฒนาสมองคณิตศาสตร์
>> ถ้ามีคำแนะนำใด ๆ ในนาทีสุดท้ายผม จะบอกว่าพลิกผ่านคำถาม
คิดออกคนที่คุณ รู้เช่นนั้นโอ้ผมได้รับนี้
เกือบแน่นอนพวกเขากำลังจะไป เป็นคำถามที่คุณจะได้รู้ว่า
หรือว่าคุณกำลังจะมีเวลา สำหรับดังนั้นตีจุดแข็งของคุณ, OK?
พวกคุณจะไปที่ดี
มีจำนวนมากที่มี คำถามด้วยเหตุผล
เพื่อให้คุณมีเวลาที่จะ ชนิดของมีโอกาส
เพื่อแสดงให้เห็นว่า คุณดีจริงๆที่
ดังนั้นก็ OK ถ้าคุณอยู่ ไม่ดีที่ทุกอย่าง
เล่นกับจุดแข็งของคุณ
ใช่?
>> ผู้ชม: ดังนั้นนี้จะ กลับสิ่งที่ตัดทอน?
ใช่มันจะเพราะ drand ผลตอบแทนระหว่าง 0 และ 1
มันจะกลับ int, เพราะมันจะได้ตัดทอน
เมื่อเราเพิ่มหรือคูณด้วยมัน
เย็น
คำถามใด ๆ นาทีสุดท้าย?
>> พวกคุณกำลังจะทำอะไรดี
คุณกำลังจะเป็นนิยาย
และแม้ว่าจะไม่ได้มีจะ เป็นขนมที่นี่ในสัปดาห์หน้า
และฉันจะรักคุณ
ฉันจะรักพวกคุณโดยไม่คำนึงถึง
ทั้งหมดที่ถูกต้องให้ทุกคนโชคดี
มีช่วงเวลาที่ดี
คุณกำลังจะได้รับการปรับ
และคุณรู้อะไรไหม?
ในสองวันก็จะ จะเป็นไปในขณะที่ฉัน
มีสอง midterms ในวันพฤหัสบดีที่ดังนั้น อย่างน้อยพวกคุณจะทำ
สิทธิทั้งหมดฉันจะเห็นพวกคุณในสัปดาห์หน้า