>> ลำโพง 1: ทั้งหมดขวา
ยินดีต้อนรับกลับ
นี่คือสองสัปดาห์ของ CS50 และเรามี ป่านนี้ได้ใช้ฟังก์ชั่น แต่
นำส่วนใหญ่พวกเขาได้รับ
เราได้ใช้ printf ซึ่งมี ผลข้างเคียงของการพิมพ์
สิ่งที่อยู่บนหน้าจอ
เราได้ใช้ get-int รับลอย
>> แต่สิ่งที่จริงถ้าคุณต้องการที่จะสร้าง ฟังก์ชั่นของคุณเองเป็นบางส่วนของ
คุณอาจต้องเริ่มแล้ว ทำเพื่อตั้งปัญหาหนึ่ง แต่
ไม่จำเป็นต้องใช้อย่างเคร่งครัด
ดีขอไปข้างหน้าและทบทวนว่า ปัญหาเพียงขอให้ผู้ใช้สำหรับ
ชื่อและการพิมพ์ของพวกเขาบางสิ่งบางอย่าง หน้าจอ แต่พยายามที่จะออกปัจจัยบางอย่าง
ของคนธรรมดาสามัญที่เราได้ มองเห็นได้ในรหัสของเราป่านนี้
ดังนั้นโดยที่ฉันหมายความว่าต่อไปนี้
>> ฉันจะไปข้างหน้าและสร้าง โปรแกรมใหม่เพียงโทร
มัน hello.c ตามปกติ
ฉันจะไปข้างหน้าและให้ตัวเอง รวม io.h มาตรฐานที่ด้านบน
ฉันจะยังให้ตัวเอง preemptively ห้องสมุด CS50 เพื่อให้
ฉันไม่ได้รับการตะโกนใส่โดยคอมไ​​พเลอร์
และตอนนี้ฉันจะไปข้างหน้า และประกาศ int, โมฆะหลัก
>> และจากนั้นในที่นี่นี้เป็นที่ที่ฉันต้องการ ที่จะเริ่มต้นที่จะ outsource ฟังก์ชันการทำงาน
บางฟังก์ชั่นอื่น ๆ ที่ตัวผมเอง am จะเขียน แต่ไม่
อยู่ในขณะนี้
ตัวอย่างเช่นสมมติว่าผมต้องการที่จะ เขียนฟังก์ชันที่ช่วยให้ผม
พิมพ์ออกมาทักทายจุลภาคและ แล้วชื่อผู้ใช้บางคน
แทนที่จะดำเนินการต่อเพื่อทำ printf สวัสดี% s, มันจะไม่ดีถ้า
มีเพียงฟังก์ชันที่เรียกว่า ไม่ printf แต่พิมพ์ชื่อ?
>> ดังนั้นในคำอื่น ๆ ที่ฉันต้องการเพื่อให้สามารถ เขียนโปรแกรมที่ไม่น้อย
บางอย่างเช่นนี้
ครั้งแรกที่ฉันจะพูด printf ของคุณ ชื่อดังนั้นการกระตุ้นให้ผู้ใช้สามารถ
ให้ฉันชื่อของเขาหรือเธอและแล้วฉัน จะใช้ s สตริงคุ้นเคยกับ
ประกาศสตริง
ให้ฉันตัวแปรชนิดสตริง, เรียกมันว่า s เก็บและในการที่
ผลของการเรียกสตริงการรับ
แต่ตอนนี้ในสัปดาห์ที่ผ่านมาผมจะมี ทำได้ค่อนข้างน่าเอือมระอาสวัสดี% s / n
>> และในคำอื่น ๆ ที่เราเคยเห็นนี้ ตัวอย่างเช่นพวงของครั้งและก็
ตัวอย่างเล็กน้อยเพราะมีเพียงหนึ่ง บรรทัดของรหัสดังนั้นมันจึงไม่ได้จริงๆ
เรื่องใหญ่ที่จะทำให้การพิมพ์อีกครั้ง
แต่คิดว่าบรรทัดของรหัสนี้ จริงกำลังกลายเป็นภาระและ
มันไม่ใช่หนึ่งบรรทัดของรหัส แต่ 10 บรรทัดของรหัสสองสามสัปดาห์ต่อจากนี้
และคุณเพียงแค่เหนื่อย ของการคัดลอกและวางหรือ
การพิมพ์ดีดครั้งใหม่ว่ารหัสเดียวกัน
มันจะไม่ดีแทนที่จะทำ printf สวัสดี% s และอื่น ๆ
มันจะไม่ดีถ้ามีเพียงแค่ ฟังก์ชันที่เรียกว่าพิมพ์ชื่อที่
ใช้อาร์กิวเมนต์ -
ในคำอื่น ๆ ก็จะเข้า -
แล้วอัฒภาค
ดังนั้นเป็นหน้าที่ที่จะไม่ได้ จะดีถ้าที่มีอยู่?
แล้วฉันจะได้ไม่ต้องกังวลเกี่ยวกับ สิ่ง printf คือสิ่งที่% s และทั้งหมดของ
ความซับซ้อนเหล่านี้ที่ ไม่ใช่สิ่งที่น่าสนใจ
พวกเขามีประโยชน์
>> พิมพ์ชื่อดังนั้นโชคไม่ดีที่ไม่ได้เป็น คิดค้นบาง 40 ปีบวกที่ผ่านมา
ไม่มีใครคิดที่จะเขียนมัน
แต่ที่ความงามของการมี การเขียนโปรแกรมภาษาเช่นเดียวกับใน
รอยขีดข่วนคุณสามารถกำหนดบล็อกที่กำหนดเองดังนั้น อยู่ใน C และส่วนใหญ่ภาษาใด ๆ ที่คุณสามารถ
กำหนดฟังก์ชันการทำงานของคุณเองสามารถ คุณกำหนดฟังก์ชั่นของคุณเอง
ดังนั้นแม้ว่าเราจะได้รับเป็นหลักโดย โดยอัตโนมัติสำหรับฟรีเราสามารถประกาศ
ฟังก์ชั่นของเราเอง
>> ดังนั้นฉันจะทำให้บางห้องที่นี่ ขึ้นด้านบนและฉันจะประกาศของฉัน
ฟังก์ชั่นของตัวเองที่จะไปดู แปลก ๆ ในตอนแรก แต่เราจะมา
กลับไปที่นี้นานก่อนที่จะ
ฉันจะบอกว่าเป็นโมฆะดังนั้น แสดงฟังก์ชั่นนี้จะ
บางสิ่งบางอย่างมีผลข้างเคียง แต่มัน ไม่ได้กลับสิ่งที่ฉันใน
เช่นเดียวกับที่ได้รับ int หรือ รับสายตัวเองไม่
และฉันจะให้ฟังก์ชั่นนี้ ชื่อของชื่อพิมพ์และฉันจะไป
ระบุว่าผู้ชายคนนี้จะใช้เวลา สตริงและฉันจะเรียกว่า
ชื่อสตริง
ฉันจะเรียกมันว่าอะไรที่ฉันต้องการ แต่ฉัน ต้องการรหัสของฉันจะเป็นตนเอง documenting
ในคำอื่น ๆ ถ้าหนึ่งของคุณจะ เปิดแฟ้มนี้และอ่านมันคุณสามารถ
เรียงลำดับของการอนุมานจากชื่อของที่ อินพุตบทบาทอะไรก็ควรที่จะเล่น
>> และตอนนี้ต่ำกว่าที่ฉันจะเปิด วงเล็บปีกกาและรั้งปิดหยิก
และอื่น ๆ ที่ผมเคยสังเกตเห็นตามเดียวกัน ลวดลายบนเส้นสี่เจ็ดเป็น
ฉันได้รับการดังต่อไปนี้สำหรับสัปดาห์ที่ดีบวก ขณะนี้อยู่ระหว่างการพูด, เก้าเส้นและ
14 ซึ่งประกอบด้วยหลัก
ในคำอื่น ๆ พิมพ์ชื่อ ฟังก์ชั่นอีกอย่างก็คือ
ตอนนี้คอมไพเลอร์จะไม่ทราบว่า ที่จะเรียกสิ่งนี้โดยอัตโนมัติ
เพราะแท้จริงฉันเพียงแค่คิดค้นมัน แต่มันจะได้รู้ว่ายังคงที่จะเรียกหลัก
โดยอัตโนมัติและแล้วแน่นอนใน สาย 13, ฉันเรียกใช้ฟังก์ชันของตัวเอง
และเพราะผมบอกว่าฟังก์ชั่น ขึ้นไปบนสี่บรรทัดก่อนหลัก
นี้จะสอนคอมไพเลอร์ สิ่งอ้างไม่ได้นำมาอ้าง "ชื่อพิมพ์"
วิธีการและสิ่งที่ควรทำ
ดังนั้นฉันจัดเรียงของให้มันเป็นที่กำหนดเองใหม่ บล็อกในบริบทของการพูด, Scratch
>> ดังนั้นในที่นี่ผมสามารถใส่ที่พบบ่อยมาก หรือรูปแบบที่เกิดขึ้นของรหัสผมเก็บ
การเขียนในชั้นเรียน printf สวัสดี% s,% s / n ", -
สิ่งที่ฉันต้องการที่จะนำเข้า
? S
ดังนั้นผมจึงต้องการที่จะนำชื่อในบริบทนี้
ดังนั้นสังเกตเห็นบิตของการแบ่งขั้วที่นี่
เพราะฉันประกาศฟังก์ชั่นของตัวเอง และฉันได้ค่อนข้างเรียกพล
มันพิมพ์ชื่อและเพราะฉัน ที่ระบุไว้ในวงเล็บว่านี้
ฟังก์ชั่นใช้เวลาหนึ่งอาร์กิวเมนต์ของ ซึ่งเป็นสตริง - ดังนั้นจึงเป็นคำ
หรือวลีหรือสิ่งที่ต้องการที่ - และ ฉันโทรชื่ออาร์กิวเมนต์ที่ว่า
หมายถึงตัวแปรเดียวที่อยู่ใน ขอบเขตเพื่อที่จะพูด, คือชื่อ
>> S เท่านั้นอยู่ระหว่างสิ่งสอง วงเล็บปีกกาของหลักสูตร?
ดีจริงๆเช่นเดียวกับสาย 10 ผ่าน 14 ดังนั้นเช่นเดียวกับเมื่อวันจันทร์ที่ไม่สามารถใช้
S แต่สิ่งที่ฉันสามารถทำได้คือผ่าน S ในการพิมพ์ชื่อ
ชื่อพิมพ์เกิดขึ้นเพียงเพื่อที่จะให้มัน นามแฝง, ไวพจน์, ชื่อเล่น,
เรียกมันว่าชื่อและตอนนี้ ใช้มันในสายนี้
ดังนั้นตอนนี้ให้ฉันบันทึกนี้ซูมออก
>> ให้ฉันไปข้างหน้าและทำให้สวัสดี
ดูดี
ไม่ได้คายข้อผิดพลาดใด ๆ . / สวัสดีใส่
ชื่อของฉันคืออะไร?
เดวิด
และสวัสดีเดวิด
ดังนั้นไม่ทั้งหมดที่น่าตื่นเต้นที่, แต่ก็คิดว่าตอนนี้
ขณะนี้คุณมีที่ส่วนผสมเดียวกัน ในขณะที่เราทำใน Scratch ไป
ทำให้การทำงานของเราเอง
>> แต่มีบิตของ gotcha คือ
สมมติว่าผมไม่เคยคิดจริงๆ นี้ผ่านทางและที่จริงผมไม่ต้อง
จริงๆคิดเกี่ยวกับมันครับ ฟังก์ชั่นลงที่นี่ที่
ความรู้สึกที่เหมาะสมอย่างสมบูรณ์แบบ
ใน Scratch มีความคิดไม่เป็น จากที่ตั้งอยู่ในสคริปต์ของคุณ
คุณสามารถใส่หนึ่งขึ้นที่นี่หนึ่งขึ้นที่นี่ หนึ่งขึ้นที่นี่และมันอาจจะเริ่มต้น
จะดูยุ่ง ๆ ถ้าคุณทำไม่ได้ วางออกอย่างเรียบร้อย แต่มันไม่ได้
เรื่องสคริปต์ร่างกายที่ อยู่บนหน้าจอ
แต่น่าเสียดายที่ใน C - และสิ่งนี้จะแตกต่างจาก ภาษาเช่น Java และ Python
และอื่น ๆ ที่คุณอาจไม่คุ้นเคย กับ - โชคร้ายที่อยู่ใน C, การสั่งซื้อไม่
สำคัญเพราะดูว่ามีอะไร ที่จะเกิดขึ้นในขณะนี้
>> ฟังก์ชั่นเริ่มต้นที่เกิดขึ้น ที่จะดำเนินการเป็นของหลักสูตรหลัก
ที่หน้าหลักจะเรียกชื่อพิมพ์บน แปดเส้น แต่โชคร้าย,
คอมไพเลอร์จะไม่ได้รู้ชื่อพิมพ์ที่ มีอยู่จนกว่าจะได้รับถึง 11 สาย,
ที่โชคร้ายคือ จะสายเกินไป
ดังนั้นขอให้ทำสวัสดี
และตอนนี้แช่งสองข้อผิดพลาดที่สร้าง
ดังนั้นตอนนี้ให้ฉันเลื่อนขึ้นไปมาก ครั้งแรกที่เราควรทำและ
สังเกตเห็นว่ามันตะโกนใส่ฉัน "ประกาศนัยของการทำงาน
พิมพ์ชื่อ. "
>> ดังนั้นเราจึงได้เห็นข้อความนี้ก่อน ประกาศนัยของการทำงาน
ที่เราได้เห็นเมื่อชนิดของข้อผิดพลาดที่?
เมื่อฉันไม่ได้รวมถึงห้องสมุด
ถ้าฉันลืม cs50.h และฉันจะได้รับ ตะโกนใส่สำหรับการรับสายหรือได้รับ int
แต่ในกรณีนี้, พิมพ์ฟังก์ชั่นนี้ ชื่อไม่ได้อยู่ในห้องสมุดขวา?
มันเป็นอย่างแท้จริงในแฟ้มนี้ดังนั้น จริงๆสิ่งที่เป็นปัญหา?
>> ดีโชคร้ายใน C ก็จะนำคุณ ดังนั้นอย่างไม่น่าเชื่ออย่างแท้จริงว่าถ้าคุณ
ต้องการฟังก์ชันที่เรียกว่าพิมพ์ชื่อไป อยู่คุณอาจต้องดำเนินการ
ฟังก์ชั่นที่ส่วนบนสุดของคุณที่ รหัสเพื่อที่จะสามารถเข้าถึงได้ที่ลดลง
ฟังก์ชั่น แต่ตรงไปตรงที่จะกลายเป็น เลอะเทอะอย่างรวดเร็ว
ส่วนตัวผมชอบการวางหลักแรก แล้วเพราะมันชัดเจนมากว่านี้
โปรแกรมไม่ได้อย่างรวดเร็วก่อน
และบวกคุณจะได้รับในมุมแปลก กรณีที่ถ้า x ต้องการที่จะเรียก
y y แต่อาจจะเรียก x, คุณเพียงแค่ ร่างกายไม่สามารถจริงหนึ่งใส่
เหนือผู้อื่น
>> แต่ปรากฎอยู่ใน C เราสามารถ แก้มากเพียงนี้
ฉันจะใส่นิด ๆ หน่อย ๆ ของพื้นที่ ขึ้นที่นี่และฉันก็จะ
preemptively แม้จะค่อนข้าง เกินความจำเป็น, ไปสอน
คอมไพเลอร์ว่ามีฟังก์ชั่น เรียกชื่อพิมพ์ก็จะใช้เวลาสตริง,
และฉันจะเรียก อัฒภาคชื่อมัน
>> ดังนั้นตอนนี้ในสายสี่ซึ่งเรา ยังไม่ได้เห็นมาก่อนการประกาศเป็น
ของฟังก์ชั่นการพิมพ์ชื่อ แต่มันเป็นเพียง สัญญาว่าฟังก์ชั่นนี้จะ
ในที่สุดก็จะถูกกำหนดไว้ในท้ายที่สุด จะดำเนินการ
ตอนนี้ฉันจะออกเพียงอย่างเดียวเพราะ ตอนนี้เป็นคำนิยาม
การดำเนินการเรียงลำดับของไมล์สุดท้าย ของการดำเนินการนี​​้
ฟังก์ชั่นโดยเฉพาะอย่างยิ่ง
ดังนั้นตรงไปตรงมามันโง่มันน่ารำคาญ, แต่นี้เป็นวิธีที่ซีเป็นและก็
เพราะมันจะนำคุณมากอย่างแท้จริง และในขณะที่เครื่องคอมพิวเตอร์ตรงไปตรงมาควร
เพียง แต่สิ่งที่คุณบอกมันไป ทำและเพื่อให้การสั่งซื้อเป็นสิ่งสำคัญ
>> ดังนั้นเก็บที่ในใจครั้งและอีกครั้งเริ่มต้นที่จะ สังเกตเห็นการกำเริบของรูปแบบ
ราคาต่อรองที่คุณจะถ้าคุณยังไม่ได้ แล้วเริ่มต้นที่จะพบข้อความ
เช่นนี้ที่ได้อย่างรวดเร็วก่อนดูเหมือน ความลับอย่างสมบูรณ์ แต่ถ้าคุณเริ่มต้น
ที่จะมองหาคำที่สำคัญเหล่านี้เช่น "การประกาศโดยปริยาย" กล่าวถึง
ฟังก์ชั่นในกรณีนี้ - และตรงไปตรงมาคุณ แม้บางครั้งจะได้รับสีเขียวเล็ก ๆ น้อย ๆ
สัญลักษณ์แครอทที่จะบอกคุณที่ ปัญหาอาจจะ -
คุณสามารถเริ่มต้นการทำงานของคุณผ่านทาง ยังข้อความผิดพลาดที่มองไม่เห็น
คำถามใด ๆ เกี่ยวกับการเขียนของคุณ ฟังก์ชั่นของตัวเองในลักษณะนี้?
>> ขอทำสิ่งที่ เล็ก ๆ น้อย ๆ น่าสนใจมากขึ้น
มากกว่าเพียงแค่ทำสิ่งที่มี ผลข้างเคียงของการพิมพ์ให้ฉันไป
ข้างหน้าและบันทึกไฟล์ใหม่และเราจะ เรียก positive.c นี้แม้ว่าจะ
จะแตกต่างกันเล็กน้อย เมื่อเทียบกับครั้งสุดท้ายที่
และในครั้งนี้ผมต้องการใช้อีกครั้ง ตัวอย่าง positive.C เวลาที่ผ่านมาซึ่ง
มีการบังคับให้ผู้ใช้เพื่อให้ ฉันเป็นจำนวนเต็มบวก
แต่ผมใช้ครั้งสุดท้ายที่ได้รับ int
จะไม่ได้มีดีถ้ามี ฟังก์ชั่นที่เรียกว่าได้รับ int บวก
ว่าฉันสามารถ outsource การนี​​้ ชิ้นส่วนของฟังก์ชันการทำงาน?
ดังนั้นความแตกต่างที่นี่คือเราจะ ดำเนินการรับ int บวก แต่ไม่เหมือน
พิมพ์ชื่อที่มีผลข้างเคียง - มัน ไม่ได้กลับมาบางสิ่งบางอย่างที่ฉันชอบ
ตัวเลขหรือสตริง -
ได้รับ int บวกของหลักสูตรที่จะไป กลับมาหวังว่า int บวก
>> ดังนั้นขอให้พวกนี้ทำ
รวม cs50.h, รวมมาตรฐาน io.h.
เป็นโมฆะหลัก Int
และตอนนี้ในที่นี่ฉันจะไปข้างหน้า และสมมติว่า int เรียกว่า n เท่ากับ
ได้รับ int บวก
และเช่นเดียวกับได้รับ int อยู่แล้ว เพราะพนักงานเขียนมันฉันจะ
จะต้องรับผิดชอบสำหรับช่วงเวลาที่ได้รับ int บวกอยู่และตอนนี้ฉันจะ
ไปข้างหน้าและพูด printf, ขอบคุณสำหรับ% i / n ", n
>> ดังนั้นตอนนี้ถ้าผมรวบรวมโปรแกรมนี้สิ่งที่ ที่จะเกิดขึ้นในขั้วของฉัน
หน้าต่างที่ด้านล่างของหน้าจอ?
ฉันจะอาจจะได้รับที่ ข้อผิดพลาดเช่นเดียวกับก่อน
ดังนั้นขอลองนี้
ให้บวก
และอีกครั้งที่ประกาศโดยปริยาย ของฟังก์ชั่นได้รับ int บวก
เพื่อให้เราสามารถแก้ปัญหานี้ใน สองวิธี
ฉันจะให้มันง่ายและเพียงแค่ ใส่คำประกาศของฉันขึ้นที่นี่และได้รับ
int บวก
ฉันจำเป็นต้องใช้ลายเซ็นที่เรียกว่า
ลายเซ็นเพียงหมายถึง เพื่อความงามของ
บรรทัดแรกของโปรแกรม
ดังนั้นสิ่งที่ควรจะได้รับในเชิงบวก int กลับมา?
>> ดังนั้น int
ผมหมายถึงความนึกคิดมันจะกลับมา สิ่งที่ต้องการ int บวก แต่ที่
ไม่ได้อยู่
เราไม่เห็นว่าในข้อมูลของเรา ชนิดเพื่อให้เรามีการจัดการกับ
ความจริงที่ว่าเรามีน้อยมาก ชนิดข้อมูลที่จะทำงานกับ
แต่เราสามารถกลับ int และเพียงแค่ เชื่อว่ามันจะเป็นบวก
มันจะถูกเรียกว่า ได้รับ int บวก
>> และตอนนี้วิธีการเกี่ยวกับการขัดแย้งได้อย่างไร
มันจะใช้เวลาป้อนข้อมูลใด ๆ ?
มันจำเป็นต้องป้อนข้อมูลใด ๆ ?
ดังนั้นจึงไม่จำเป็นต้องรู้ อะไรล่วงหน้า
รับสายไม่ได้รับ int ไม่ได้
printf ไม่ - มันต้องมีบาง การป้อนข้อมูลผ่านเข้าไปในมัน - และพิมพ์ชื่อ
ที่จำเป็นในการป้อนข้อมูลบางอย่าง แต่ได้รับ int บวกไม่ได้
ดังนั้นฉันจะต้องชัดเจน บอกเป็นโมฆะคอมไพเลอร์
ถือเป็นโมฆะหากไม่มีอะไรอื่น
ดังนั้นหมายความว่าไม่มีอะไรเป็นโมฆะเป็นไปภายใน วงเล็บเหล่านั้นอัฒภาค
>> และตอนนี้ที่ด้านล่างของไฟล์ของฉัน - และ ชนิดอีกครั้งฉันแค่เป็นอยู่ของทวารหนั​​ก
ที่นี่การวางหลักที่ด้านบนซึ่ง คือการปฏิบัติที่ดีเพราะด้วยวิธีนี้
ตลอดเวลาที่คุณหรือคนอื่น เปิดไฟล์ของคุณ
การทำงานที่นั่น
คุณสามารถดำน้ำจากหนึ่งตาราง
ดังนั้นตอนนี้ฉันกำลังจะไปที่ซ้ำกันนี้ ได้รับเป็นโมฆะ int บวก แต่ฉันไม่
จะตีอัฒภาคขณะนี้
ฉันจะเปิดวงเล็บปีกกา, และตอนนี้ฉันต้องการที่จะยืม
ความคิดบางอย่างจากวันจันทร์
>> เพื่อที่คุณจำได้ว่าเราทำอะไรบางอย่าง ชอบทำต่อไปนี้ในขณะที่
สิ่งที่เป็นความจริง
และฉันทำอะไร?
ผมทำสิ่งที่ต้องการให้ ฉันเป็นจำนวนเต็มบวก,
นิด ๆ หน่อย ๆ ของพรอมต์
ฉันสามารถใช้คำพูดใด ๆ ที่ฉันต้องการ
และจากนั้นผมใช้อะไร
int n เท่ากับได้รับ int, ไม่มีข้อโต้แย้งกับมัน
>> และเห็นความแตกต่าง
เมื่อคุณเรียกใช้ฟังก์ชันที่เมื่อคุณใช้ ฟังก์ชั่นที่คุณไม่ได้ใส่ในช่องว่าง
คุณจะทำเมื่อประกาศ ฟังก์ชั่นการเรียนการสอนคอมไพเลอร์ว่า
มันควรคาดหวังว่า
ดังนั้นคุณจึงไม่จำเป็นต้องใส่ เป็นโมฆะมีตัวเอง
>> และตอนนี้สิ่งที่เป็นสภาพของฉัน
ดี n ไม่เท่ากับบวก แต่เพียงหลอกรหัส
ดังนั้นฉันจะแสดงนี้ขึ้นหมดจด?
ดังนั้นน้อยกว่าหรือเท่ากับศูนย์
ดังนั้นอีกครั้งแจ้งให้ทราบล่วงหน้าที่คุณสามารถทำได้ น้อยกว่าหรือเท่ากับ
แม้จะแยกออกเป็นสอง สัญลักษณ์ที่คุณสามารถทำมัน
แป้นพิมพ์ของคุณเช่น
>> แต่ยังคงมีข้อผิดพลาดที่ ผมเมาขึ้นครั้งเกินไป
ฉันต้องประกาศ -
อย่างแน่นอน
ฉันต้องประกาศ n นอก ของวง
ดังนั้นผมจึงจำเป็นต้องใส่ n ขึ้นที่นี่และผมก็ทำไม่ได้ ต้องการอีกครั้งประกาศไว้ในที่นี่
เกรงว่าฉันจะได้รับตัวแปรใหม่
ผมแค่อยากจะกำหนดค่าที่นี่
>> และตอนนี้ฉันไม่ได้ทำค่อนข้างที่นี่
ให้ฉันได้รับล่วงหน้าของตัวเอง และแสร้งทำเป็นว่าฉันทำ
ทำให้บวกและตอนนี้ มีข้อผิดพลาดใหม่
ควบคุมการถึงจุดสิ้นสุดของ ฟังก์ชั่นที่ไม่เป็นโมฆะ
ดังนั้นข้อผิดพลาดใหม่ แต่ถ้าชนิดที่คุณ จากแซวกันแต่ละคำมัน
อาจเป็นนัย ๆ ว่ามีอะไรที่ไม่ถูกต้อง
>> การควบคุม
ควบคุมเพียงหมายถึงการสั่งซื้อ ของการดำเนินงานในโปรแกรม
คอมพิวเตอร์ที่อยู่ในการควบคุมและ สิ่งที่ผิดพลาด
ดังนั้นจึงถึงจุดสิ้นสุดของ ฟังก์ชั่นที่ไม่เป็นโมฆะ
ฟังก์ชั่นอะไรที่มันเห็นได้ชัดคือ หมายถึง?
ฟังก์ชั่นอะไรที่ไม่เป็นโมฆะ?
เพื่อให้ได้รับ int บวกและเล็ก ๆ น้อย ๆ ทำให้เกิดความสับสนในกันดีว่า,
มันเป็นชนิดของการเป็นโมฆะ
แต่ก็มีสเปคของโมฆะสำหรับตน ข้อโต้แย้ง แต่เอาท์พุทเป็นไป
จะเป็นชนิดที่ n
ดังนั้นคำบนซ้ายคือ จึงเรียกว่าชนิดกลับ
คำข้างในที่นี่คือ ศูนย์หรือมากกว่าอาร์กิวเมนต์
ฟังก์ชั่นที่ใช้เวลา
>> ดังนั้นสิ่งที่ฉันจะต้องทำอย่างไร
ณ จุดนี้ในรหัสของฉัน, 21 เส้น ให้กระพริบในขณะนี้คือผม
มี int บวกภายใน ของตัวแปรที่เรียกว่า n
ฉันจะให้มันกลับไปที่วิธีการหลัก?
อย่างแท้จริง
กลับ n อัฒภาค
>> ดังนั้นกลับมาเช่นเดียวกับการตัดสินใจที่ชิ้นส่วนของ กระดาษที่มีคำตอบให้ฉันโดยวาง
ชิ้นนั้นในกระดาษสีดำเล็ก ๆ น้อย ๆ กล่องบนโต๊ะที่จะทำใน
รหัสคุณอักษรเพียงแค่เขียนกลับ n และมันราวกับว่าการตัดสินใจที่ถูก
ส่งฉันบางสิ่งบางอย่างกลับทางกายภาพ
ในกรณีนี้สิ่งที่เกิดขึ้นคือการได้รับ int บวกที่เกิดขึ้นจะส่งกลับ
สันนิษฐานว่าสิ่งที่เป็นบวก จำนวนเต็มเพื่อใคร?
ค่าที่ไม่ที่สิ้นสุด?
ที่จบลงในตัวแปรนี้, n และ แล้วเราจะดำเนินการกับเก้าเส้น
>> ดังนั้นในคำอื่น ๆ ในคำสั่งของ การดำเนินงานโครงการนี​​้จะเริ่มต้น
การดำเนินงานและคอมไพเลอร์ตระหนัก, โอ้คุณต้องการห้องสมุด?
ให้ฉันไปคว้าสิ่งที่อยู่ภายใน
โอ้คุณต้องการห้องสมุด IO มาตรฐาน
ให้ฉันไปคว้าสิ่งที่อยู่ภายใน
คอมไพเลอร์พูดว่าอย่างไรกับตัวเอง เมื่อมันกระทบสายสี่
โอ้คุณสัญญาว่าจะดำเนินการ ฟังก์ชันที่เรียกว่าได้รับในเชิงบวก แต่
เราจะได้รับกลับไปในภายหลังว่า, บางสิ่งบางอย่างตามเส้นที่
>> เป็นโมฆะหลัก Int เพียงแค่หมายความว่านี่คือ guts ของโปรแกรมของฉัน
เจ็ดแถวเป็นเพียงรั้งหยิก
แปดสายไม่ว่าจะทางด้านซ้ายให้ ฉัน 32 บิตสำหรับจำนวนเต็มเรียกว่า n
ทางด้านขวามือก็ บอกว่าได้รับ int บวก
ตอนนี้หยุดเถอะว่าเรื่องเพราะตอนนี้ ผมไม่ให้ย้ายเคอร์เซอร์ของฉันลง
เคอร์เซอร์ของฉันตอนนี้ไปลงที่นี่เพราะ ขณะนี้ได้รับ int บวกรัน
int n มีการประกาศ
ทำต่อไปนี้
printf ให้ฉันเป็นจำนวนเต็มบวก
>> รับ int จากผู้ใช้เก​​็บไว้ใน n, และอาจจะทำเช่นนี้อีกครั้งและอีกครั้ง
ห่วงซึ่งหมายความว่ารหัสนี้อาจจะ ดำเนินการขึ้นและลงเช่นนี้อีกครั้ง
และอีกครั้ง แต่เมื่อผู้ใช้ในที่สุด ให้ความร่วมมือและให้ฉันที่เป็นบวก
int ผมตีสาย 21 จุดที่ จำนวนถูกส่งกลับมาและที่หนึ่ง
ผมควรจะเน้นในขณะนี้?
เก้า
การควบคุมเพื่อที่จะพูดกลับ กับสายเก้า
นั่นคือเส้นที่ตอนนี้อยู่ในความดูแล
>> เพื่อให้เป็นสิ่งที่ถูกที่เกิดขึ้นทั้งหมด เวลานี้อยู่ภายใต้ฝากระโปรง แต่
เมื่อเราใช้ฟังก์ชั่นเช่น printf หรือแม้กระทั่งการรับสายที่คนอื่น
เขียนให้คุณควบคุมถูกส่ง สายรหัสออกไปคนอื่น
โดยทีละบรรทัด
มันเป็นเพียงการที่เราไม่สามารถมองเห็นมันและเรา อาจไม่ได้จริงๆพรรณนาไว้ในนี้
โปรแกรมเพราะในบางอื่น ๆ ไฟล์บนฮาร์ดไดรฟ์
ถิ่นเรา
ดังนั้นขอรวบรวมจริง และเรียกใช้ในตอนนี้
>> ให้บวก
คอมไพล์ที่ความคืบหน้า
. / บวก
ให้ฉันเป็นจำนวนเต็มบวก
ให้เป็นเรื่องยาก
เชิงลบ 1
เป็นศูนย์
ขอให้มัน 50
ขอบคุณสำหรับ 50 และการควบคุมดังนั้น ตอนนี้กลับมา
คำถามใด ๆ แล้วในที่?
อ้าง?
>> [เงียบสงัด]
>> พูดอีกครั้ง
โอ้คำถามที่ดี
ดังนั้นคุณอาจสังเกตเห็นคู่ขนานที่นี่ที่ ผมชนิดของการตัดมุมบน
ในบรรทัดที่ 12 ผมว่าได้รับ int บวก ผลตอบแทนที่ int แต่เดียวกันกับที่
ตรรกะบัดนี้มันยืนเพื่อเหตุผลที่ใน สายหกผมบอกว่าผลตอบแทนที่ได้หลัก
int แต่สิ่งที่เราไม่เคยมี มีอยู่ในใด ๆ ของโปรแกรมของเราหรือไม่
เราไม่เคยมีการเอ่ยถึง กลับคำนี้สำคัญ
>> ดังนั้นมันจึงกลับกลายเป็นว่าใน C อย่างน้อย รุ่นของมันที่เรากำลังใช้
ที่ทำในปี 1999 เทคนิคนี้คือ ที่เกิดขึ้นให้คุณโดยอัตโนมัติ
ตลอดเวลาที่คุณใช้โปรแกรมและคุณ ใช้ฟังก์ชันที่เรียกว่าหลัก,
ฟังก์ชั่นที่จะกลับมาเป็นศูนย์โดย เริ่มต้นถ้าคุณไม่ได้พูดอย่างนั้น
และศูนย์เป็นเพียงการประชุม
โลกก​​ลับเป็นศูนย์ดังนั้น แสดงให้เห็นว่าทั้งหมดเป็นอย่างดี,
ได้อย่างมีประสิทธิภาพออกจากเราด้วยสี่พันล้าน สิ่งที่เป็นไปได้ว่าอาจจะไป
ที่ไม่ถูกต้องเพื่อที่ว่าถ้าเรากลับไปหนึ่งว่า อาจมีความหมายรหัสที่หมายถึงนี้
สิ่งที่ผิดพลาดไป
เราสามารถกลับสองซึ่งหมายความว่า นี้สิ่งอื่น ๆ ที่ผิดพลาดไป
เราจะกลับมาสี่พันล้านซึ่ง นี้หมายถึงสิ่งอื่น ๆ ที่ผิดพลาดไป
>> และถ้าคุณคิดเกี่ยวกับของคุณเอง PC หรือ Mac ของคุณอาจจะจำได้ว่า
บางครั้งคุณจะได้รับข้อความผิดพลาดคลุมเครือ จากซอฟต์แวร์ที่คุณ
การใช้และบางครั้งก็มีความเป็นมนุษย์ คำอธิบายที่เป็นมิตร แต่มี
มักจะรหัสหรือหมายเลข บนหน้าจอ?
หากยังไม่สามารถมาใจ, เพียงแค่เก็บตาออกสำหรับมัน
ที่มักจะมีสิ่งเหล่านี้ รหัสหมายถึง
พวกเขากำลังรวมอยู่ในโปรแกรม Microsoft Word และ โปรแกรมอื่น ๆ เพื่อที่ว่าถ้าคุณยื่น
รายงานข้อผิดพลาดกับ บริษัท ที่คุณสามารถ บอกพวกเขาว่าโอ้ผมได้หมายเลขข้อผิดพลาด 45
และกลับโปรแกรมเมอร์บาง บริษัท สามารถดูว่าในของเขาหรือเธอ
รหัสและพูดว่าโอ้ว่าเป็นเพราะฉันทำ ข้อผิดพลาดนี้และที่ว่าทำไมผู้ใช้
ได้รับข้อความนี้
>> แต่ตรงไปตรงมาก็เพียงเล็ก ๆ น้อย ๆ เบี่ยงเบนความสนใจและน่าเบื่อเล็กน้อยเพื่อ
สรุปได้ว่าอย่างน้อยในของเรา ไม่กี่โปรแกรมแรกดังนั้นเราได้
รับเลี่ยงมัน
แต่เวลานี้ทุกหนึ่งของของคุณ ฟังก์ชั่นหลักได้แอบมีนี้
สายเพิ่มโดยอัตโนมัติสำหรับคุณโดย คอมไพเลอร์, การประชุมเพียงแค่ไป
ช่วยให้คุณประหยัดเวลา
>> [เงียบสงัด]
>> คุณไม่จำเป็นต้องรวมไว้ในหลัก
ที่ปรับ
คุณไม่จำเป็นต้องรวมไว้ถ้าคุณได้ ฟังก์ชั่นการดำเนินการเช่นนี้
มิฉะนั้นแบนฟังก์ชั่น ออกจะไม่ทำงาน
แต่ในหลักมันไม่จำเป็น
ในหนึ่งสัปดาห์หรือสองเราจะเริ่มได้รับ เป็นนิสัยว่าเ​​มื่อเราต้องการที่จะเริ่มต้น
ข้อผิดพลาด signifying
คำถามที่ดีจริงๆ
>> การแบ่งวาจาอย่างรวดเร็วเพื่อให้พูดถึงว่า ศุกร์นี้เราจะไม่ได้มีอาหารกลางวัน
ต่อ แต่เราจะมีอาหารค่ำกับ บางส่วนของนักเรียนและพนักงาน
หากคุณต้องการเข้าร่วมกับเรารู้สึก อิสระที่จะไปถึง cs50.net/rsvp
06:00 ศุกร์นี้
ในพื้นที่จะเป็นเสมอ จำกัด แต่เราจะ ยังคงทำเหล่านี้ในเกือบ
เป็นประจำทุกสัปดาห์หากพื้นที่ ไหลออกมาในสัปดาห์นี้
>> ดังนั้นน่าตื่นเต้นที่เราทิ้งไปเมื่อ วันจันทร์ที่สตริงอันที่จริงแล้ว
การจัดทำดัชนีลงซึ่งก็หมายความว่าคุณ จะได้รับตัวอักษรตัวแรก,
อักขระตัวที่สอง, สามตัวอักษร และอื่น ๆ เพราะคุณสามารถ
ได้อย่างมีประสิทธิภาพคิดของสตริงเช่น สวัสดีในฐานะที่เป็นในกรณีนี้ห้า
ตัวอักษรที่อยู่ภายในกล่อง
และคุณจะได้รับในแต่ละเหล่านั้น กล่องกับสิ่งที่พวกเราไวยากรณ์
แนะนำในวันจันทร์ที่?
ผู้วงเล็บ บนแป้นพิมพ์ของคุณ
ที่เพียงแค่หมายความว่าไปที่สถานที่ตั้งศูนย์
>> เราเริ่มนับที่ศูนย์ดังนั้นวงเล็บ ศูนย์หมายถึงชั่วโมงวงเล็บหนึ่ง
หมาย e, และอื่น ๆ
และเพื่อให้ทุกช่วงเวลาที่เราได้รับ ใช้สตริงและพิมพ์ใน "สวัสดี"
และ "โลก" และสิ่งอื่น ๆ ที่ หน้าจอก็ถูกเก็บไว้
ในกล่องเช่นนี้
และใช้การคาดเดา
แต่ละกล่องจะมีอะไรเป็นตัวแทนของร่างกาย ภายในของเครื่องคอมพิวเตอร์ของคุณ
>> [เงียบสงัด]
>> ขออภัย?
>> อักขระ
>> ตัวอักษรดังนั้นแน่นอนในกรณีที่ ของสตริงและตัวอักษรเป็นเพียง
แปดบิตหรือไบต์
ดังนั้นคุณอาจจะอย่างน้อยคลุมเครือ คุ้นเคยกับความจริงที่ว่าคุณ
คอมพิวเตอร์มีหน่วยความจำ
มันมีอยู่สองประเภทของหน่วยความจำอย่างน้อย
หนึ่งคือฮาร์ดดิสก์ที่คุณบันทึก สิ่งที่ถาวรและที่ว่า
โดยทั่วไปจะมีขนาดใหญ่เพื่อให้คุณสามารถมีภาพยนตร์ เพลงและอื่น ๆ
>> แล้วคุณมีหน่วยความจำประเภทอื่น ที่เรียกว่า RAM, R-M-, มาจาก Random Access
หน่วยความจำและนี้คือประเภทของหน่วยความจำ ที่ใช้เมื่อเครื่องคอมพิวเตอร์ของคุณคือ
ทำงานอยู่ แต่ถ้าคุณสูญเสียอำนาจของคุณหรือ ตายแบตเตอรี่อะไรที่เก็บไว้
อยู่ในแรมจะหายไปถ้าคุณสูญเสียอำนาจ ทั้งสิ้นเพราะไม่
หมั่น
คุณมักจะมีวันนี้ กิ๊กของมันสองกิ๊กบางทีอาจจะมากกว่า
และกลับหัวกลับหางของ RAM คือว่ามันมาก มากมากเร็วกว่าฮาร์ดดิสก์
หรือแม้กระทั่งสถานะของแข็งไดรฟ์วันนี้ แต่มันก็มักจะมีราคาแพงขึ้นดังนั้น
คุณมีน้อยของมัน
>> ดังนั้นการสนทนาของวันนี้จริงๆหมายถึง เพื่อ RAM ชนิดของหน่วยความจำที่ว่า
มีอยู่เฉพาะในขณะที่มีอำนาจ ถูกป้อนเข้าเครื่องคอมพิวเตอร์ของคุณ
ดังนั้นเมื่อคุณพิมพ์ใน H-E-L-L-O, Enter บน แป้นพิมพ์, H เป็นไปได้ในที่เดียว
ไบต์ของ RAM, E ที่เป็นไปใน ไบต์อื่นของ RAM เช่น
ส่วนที่เหลือของคำว่า
ดังนั้นจำสิ่งที่เรามีความสามารถ ที่จะทำเวลาที่ผ่านมานี้
ให้ฉันไปข้างหน้าและเปิดไฟล์ ที่เราเรียกว่า string.c และจำ
ที่มันดูเล็ก ๆ น้อย ๆ บางอย่างเช่นนี้
ให้ฉันจริงย้อนกลับและการเปลี่ยนแปลง ไปให้ตรงกับสิ่งที่มันดูเหมือน,
ความยาวสตริงของ s
>> ดังนั้นมองไปที่โปรแกรมที่นี่
เรารวมถึงห้องสมุด CS50 ดังนั้น ที่เราสามารถใช้รับสาย
เรามีมาตรฐาน io.h เพื่อให้เราสามารถใช้ printf
เราไม่รวมสตริงทำไม?
นี้เป็นสิ่งใหม่ในวันจันทร์ที่
ดังนั้นเราจึงต้องการความยาวสตริง
leng Str
คนตัดสินใจปีที่ผ่านมา ให้เพียงจะรวบรัด
แทนที่จะเรียกมันว่า "ความยาวสตริง" ขอเรียกว่า "เล้ง Str" และปล่อยให้
รูปโลกที่ออกและเพื่อที่ว่า สิ่งที่เราได้รับการเข้าถึงด้วยสตริง
>> นี้เป็นที่คุ้นเคย
นี้เป็นที่คุ้นเคย
นี้เป็นเพียงเล็กน้อยใหม่
ในบรรทัดที่ 22 - และเราจะกลับมา นี้ แต่ตอนนี้รู้ -
และคุณเท่านั้นที่จะรู้เรื่องนี้จากการมี อ่านเอกสารหรือถ้า
คุณรู้อยู่แล้ว C -
รับสายบางครั้งสามารถสกรูขึ้น
หากผู้ใช้ที่เป็นจริงความขัดแย้งหรือ ความร่วมมือและเขาหรือเธอเพียงแค่
ไม่ได้พิมพ์อะไรแป้นพิมพ์หรือ ชนิดมากที่แป้นพิมพ์ว่า
มันทุกข์ระทมหน่วยความจำของคอมพิวเตอร์ ในทฤษฎีรับสายจะกลับมา
สิ่งอื่น ๆ กว่า สายอักขระ
มันจะกลับมาเป็นค่าที่พิเศษที่เรียกว่า โมฆะในตัวพิมพ์ใหญ่ทั้งหมด N-U-L-L และนี่คือ
เพียงแค่ค่าแมวมองที่เรียกว่า
มันเป็นค่าพิเศษที่หมายถึง สิ่งที่ไม่ดีที่เกิดขึ้นในกรณีนี้
มันเป็นตัวตนของสตริง
>> ดังนั้นโมฆะผมตรวจสอบก็เพื่อที่ว่า เรื่องสั้นยาว leng Str และ
ฟังก์ชั่นอื่น ๆ ที่มากับ C ถ้า พวกเขาคาดหวังสตริง แต่คุณผ่านพวกเขา
ตัวตนของสตริงถ้าคุณส่ง พวกเขา NULL, คอมพิวเตอร์หรือโปรแกรม
เพียงแค่จะผิดพลาดทันที
มันจะแขวน
มันจะโยนขึ้นข้อความข้อผิดพลาดบางอย่าง
สิ่งเลวร้ายที่จะเกิดขึ้น
ดังนั้นแม้ว่านี้ยังคง ไม่ดีที่กำหนด -
นี้จะทำให้รู้สึกมากขึ้นในหนึ่งสัปดาห์หรือ - สองในสาย 22 นี้เป็นเพียง
ตัวอย่างของการตรวจสอบข้อผิดพลาดของตัวเองป้องกัน เพียงในกรณีที่ครั้งหนึ่งออกจาก
ล้านอะไรผิดพลาดที่ อย่างน้อยโปรแกรมของฉันจะไม่ผิดพลาด
>> ดังนั้นถ้า s ไม่เท่ากับสิ่งที่ไม่ดี, ฉันมีนี้สำหรับวงและนี่คือ
ที่เรามีอื่น ๆ ที่ ชิ้นใหม่ของไวยากรณ์
ฉันมีห่วงสำหรับ iterating จาก ศูนย์ได้ถึงความยาวของ s
และแล้วที่นี่ผมก็พิมพ์ออก s วงเล็บฉัน แต่ฉันไม่ใช้% c ทำไมทุก
ฉับพลันแทน% s แม้ แม้ว่าเป็นสตริง?
มันเป็นตัวละครใช่มั้ย?
S เป็นสตริง แต่สิ่งที่ยึดวินาที, s วงเล็บผมที่ฉันเป็นศูนย์
หรือหนึ่งหรือสองที่แต่ละ ตัวอักษรในสตริงและอื่น ๆ สำหรับ
ที่ printf จะต้องทราบว่า มันแน่นอนตัวละครที่คาดหวัง
>> แล้วจำสิ่งที่ทำอย่างนี้ โปรแกรมจริงทำอย่างไร
>> พิมพ์ออกในคอลัมน์
>> อ้างว่า
มันเพียงแค่พิมพ์คำที่ฉันพิมพ์ใน คอลัมน์หนึ่งตัวอักษรต่อบรรทัด
ดังนั้นเรามาดูนี้อีกครั้ง
เพื่อให้สตริง
ตกลงรวบรวม . / string
ผมขอพิมพ์ใน H-E-L-L-O, ใส่และ แน่นอนฉันได้รับมันอย่างใดอย่างหนึ่งต่อบรรทัด
>> เพื่อให้ฉันทำหนึ่งในการเพิ่มประสิทธิภาพที่นี่
หากคุณคิดเกี่ยวกับมันโดยเฉพาะอย่างยิ่งถ้า คุณได้ตั้งโปรแกรมก่อนที่จะมี
เนื้อหาที่ขาดประสิทธิภาพใน 24 เส้น
ในคำอื่น ๆ ก็ไม่จำเป็นต้องมี ออกแบบที่ดีที่สุด
ตรงไปตรงมาอย่างน้อยหนึ่งครั้งคุณ จำสิ่งที่ leng Str เป็น แต่
ทำสิ่งที่โง่ที่อาจเกิดขึ้น
อะไรที่อาจจะมี?
>> [เงียบสงัด]
>> อย่างแน่นอน
มันตรวจสอบความยาวของ s ทุกเวลาเดียวแม้ว่า
H-E-L-L-O เสมอไป จะห้าตัวอักษร
เวลาผ่านห่วงนี้ทุก ห้าจะไม่เปลี่ยนแปลง
ฉันอาจจะเพิ่มขึ้นทีละครับ แต่สิ่งที่ คือความยาวของบนทุก
ซ้ำของวงนี้
มันห้าก็ห้าก็ห้าและ ข้าพเจ้าก็ยังคงถามนี้
ถามอีกครั้งและอีกครั้งและอีกครั้ง
ตอนนี้ตรงไปตรงมาที่คอมพิวเตอร์อยู่ครับดังนั้น ได้อย่างรวดเร็วและไม่มีใครจะสังเกตเห็น
ความแตกต่างในกรณีนี้ แต่เหล่านี้ชนิด ของการตัดสินใจการออกแบบไม่ดีสามารถ
เริ่มต้นที่จะเพิ่มขึ้นหากคอมไพเลอร์ตัวเอง ไม่พยายามที่จะแก้ไขปัญหานี้สำหรับคุณที่
มันมักจะไม่ที่ อย่างน้อยในเครื่องใช้ไฟฟ้า
>> ดังนั้นฉันจะทำเช่นนี้
ฉันจะเพิ่มจุลภาคหลังจาก ตัวแปรแรกของฉันฉัน
ฉันจะให้ตัวเองอีก ตัวแปรเรียกมันว่า n เพียงโดย
การประชุมสำหรับตัวเลขและแล้วฉัน จะไปกำหนด n ค่าของสตริง
ความยาวของ s
แล้วฉันจะเปลี่ยน สภาพของฉันจะเป็นสิ่งที่?
ฉันจะเปลี่ยนสภาพของฉัน ในขณะที่ i น้อยกว่า n
>> ดังนั้นตอนนี้กี่ครั้งที่ฉัน การตรวจสอบความยาวของ s?
ครั้งเดียว แต่มันตกลงเพื่อตรวจสอบกับผม n อีกครั้งและอีกครั้งเพราะตอนนี้เหล่านั้น
ค่าที่ไม่จริงการเปลี่ยนแปลง
ตอนนี้สำหรับตอนนี้เพิ่งรู้ว่าเวลาที่คุณ เรียกใช้ฟังก์ชันที่มีบิตของคน
ค่าใช้จ่ายไม่เพียงพอที่จะกีดกันคุณ จริงๆจากที่เคยใช้ฟังก์ชั่น แต่
แน่นอนเมื่อมีบรรทัดของรหัสอะไร ชอบที่ - และเส้นจะได้รับ
น่าสนใจมากขึ้นก่อนที่จะยาว - กรณีที่ มีโอกาสที่จะคิดว่าถ้าฉัน
พิมพ์รหัสนี้หลายวิธี ครั้งก็จะดำเนินการ?
คุณจะเริ่มเห็นเมื่อเวลาผ่านไป ประสิทธิภาพการทำงานของโปรแกรมของคุณสามารถ
แน่นอนเปลี่ยน
>> ในความเป็นจริงหนึ่งในปัญหาที่เราได้กำหนด ทำได้ในปีที่ผ่านมาเกี่ยวข้องกับการ
การดำเนินการที่คุณอาจจำจาก ศูนย์สัปดาห์ตรวจสอบการสะกด แต่
ตรวจสอบการสะกดที่ออกแบบมาเพื่อสนับสนุน พจนานุกรม 150,000 บวก
คำที่เราจะให้พวกคุณ
คุณจะต้องเขียนโค้ดที่โหลด คำพูดเหล่านั้นเป็น RAM จึงเป็น
กล่องเหมือนที่เราเห็นบนหน้าจอสักครู่ ที่ผ่านมาแล้วเป็นอย่างที่คุณ
สามารถคุณจะต้องสามารถที่จะตอบ คำถามของฟอร์มเป็นคำนี้
สะกดผิด?
เป็นคำที่สะกดผิดนี้?
>> และในบางสิ่งบางอย่างเช่นว่าสิ่งที่เราได้ ทำได้ในปีที่ผ่านมามีการเปิดลง,
แม้จะเลือกอยู่ในเกณฑ์ที่ไม่จำเป็น การแข่งขันของทุกชนิดด้วยเหตุนี้
นักเรียนที่ใช้น้อยลงแรม เวลาน้อยลงรอบการทำงานจบลง
เดือดปุด ๆ ขึ้นไปด้านบนของเล็ก ๆ น้อย ๆ คณะกรรมการผู้นำหรือการจัดอันดับที่เราใส่
หน้าแรกของหลักสูตรที่เราได้ ทำได้ในปีที่ผ่านมา
ดังนั้นอีกครั้งโดยสิ้นเชิงตัวเลือก แต่นี้ พูดถึงโอกาสในการออกแบบ
ที่ไปข้างหน้าทันทีที่เราเริ่มต้น สร้างอยู่บนบางส่วนของเหล่านี้
สร้างพื้นฐาน
>> เพื่อให้ฉันกลับไปที่แผนภาพนี้ รอสักครู่และเปิดเผยเล็ก ๆ น้อย ๆ
บางสิ่งบางอย่างมากขึ้น
นี้แน่นอนเป็นสตริงและเราได้นำมา ความได้เปรียบของห้องสมุดไม่กี่
io.h มาตรฐานที่มี -
>> printf
>> printf เหนือสิ่งอื่นใด
cs50.h ซึ่งได้รับ int และรับสาย และอื่น ๆ สตริงซึ่ง
มี leng Str
แต่มันกลับกลายเป็นว่ามีอีก
ตรงไปตรงมามีจำนวนมากและจำนวนของส่วนหัวของ ไฟล์ที่ประกาศฟังก์ชัน
สำหรับห้องสมุด แต่ ctype.h นี้ จริงจะค่อนข้าง
ที่ได้เปรียบเพราะฉันจะ ไปข้างหน้าและการดำเนินการอย่างใดอย่างหนึ่ง
โปรแกรมอื่น ๆ ที่นี่
>> ให้ฉันไปข้างหน้าและเปิดขึ้นบางสิ่งบางอย่าง ผมเขียนล่วงหน้าที่เรียกว่า
capitalize.c และขอใช้เวลา ดูที่วิธีการทำงานนี้
ขอให้สังเกตว่าฉันใช้ในรุ่นนี้ ของมันสามไฟล์ที่คุ้นเคย
ขอให้สังเกตว่าในบรรทัดที่ 18 ผม รับบรรทัดของข้อความ
แจ้งให้ทราบในบรรทัดที่ 21 ผมอ้างว่า รหัสต่อไปนี้จะไป
ประโยชน์ของสิ่งที่ผู้ใช้พิมพ์ ในและวิธีการที่ฉันทำว่า?
ดีฉันได้รับ -
บทเรียนจากครั้งสุดท้าย -
ผมประกาศ i และ n และ iterating ตัวละครในสตริง
แล้วบล็อกนี้เป็นสิ่งที่ รหัสในสาย 24 ผ่าน 27
ทำในแง่ของคนธรรมดา?
>> กลับอักษรตัวพิมพ์เล็ก
>> อย่างแน่นอน
ถ้า s วงเล็บผม - ดังนั้นถ้าที่ i ตัวละครซึ่งเป็นที่เฉพาะเจาะจง
ถ่านในสตริงเป็นใหญ่กว่า หรือเท่ากับเป็นตัวพิมพ์เล็กและ -
จำได้ว่าเครื่องหมายคู่ และมีความหมาย -
และตัวละครเดียวกันวงเล็บ s i, คือ น้อยกว่าหรือเท่ากับเป็นตัวพิมพ์เล็ก z,
นั่นหมายความว่ามันเป็น A หรือ B หรือ C หรือ จุดจุดจุดหรือ z ซึ่งหมายความว่า
มันเป็นตัวพิมพ์เล็ก
อะไรที่ฉันต้องการจะทำในกรณีที่?
ดีฉันสามารถทำเช่นนี้ค่อนข้าง ความลับ แต่
ขอแซวนี้ออกจากกัน
>> ฉันจะเรียก printf, c% พิมพ์ เพราะผมต้องการที่จะพิมพ์ใหม่นี้
ตัวอักษรบนหน้าจอ
ผมก็จะใช้วงเล็บ s i, ที่ i ตัวละครใน s และแล้วทำไม
ฉันทำนี้เคล็ดลับเล็ก ๆ น้อย ๆ ที่นี่ ตัวพิมพ์เล็กทุนลบ?
นั่นคือสิ่งที่จะให้ ฉันมักพูด?
>> [เงียบสงัด]
>> อย่างแน่นอน
ฉันไม่จำ -
มันเป็น 65 ทุน A. ที่ฉันทำไม่ได้จริงๆ จำสิ่งที่เป็นตัวพิมพ์เล็กคือ
แต่ไม่ว่า
คอมพิวเตอร์รู้
ดังนั้นด้วยการบอกว่าเป็นตัวพิมพ์เล็กลบ เงินทุนก็จะแปลก
ลบหนึ่งถ่านจากที่อื่น แต่ สิ่งที่อยู่ใต้ฝากระโปรงตัวอักษรหรือไม่
พวกเขากำลังเพียงตัวเลข
ดังนั้นไม่ว่าตัวเลขเหล่านั้น ให้คอมพิวเตอร์จำได้
มากกว่าฉันมนุษย์
>> ดังนั้นตัวพิมพ์เล็กทุนลบคือ จะให้ฉันแตกต่าง
มันเกิดขึ้นเป็น 32, และที่จะ กรณีที่ตัวพิมพ์เล็ก b และเงินทุน B
เป็นต้น
จะยังคงสอดคล้องขอบคุณ
ดังนั้นฉันเป็นหลักว่าจะต้องมีการ ตัวพิมพ์เล็กตัวอักษรลบปิดที่
ความแตกต่างของมาตรฐานและว่า ผมยึดการเปลี่ยนแปลงได้อย่างมีประสิทธิภาพจากการ
ตัวพิมพ์เล็กไปแน่นอนตัวพิมพ์ใหญ่, โดยไม่ต้องจริงๆฉันต้องคิด
เกี่ยวกับหรือจำไว้ว่าสิ่งเหล่านั้น ตัวเลขที่เราได้พูดคุยเกี่ยวกับเมื่อแปด
อาสาสมัครขึ้นมาบนเวที?
ตอนนี้ในขณะเดียวกันในที่อื่นถ้ามันไม่ได้ อักษรตัวพิมพ์เล็กตามที่กำหนด
เส้น 24 เพียงแค่พิมพ์ออกมา
ฉันต้องการที่จะสัมผัส ตัวอักษรที่เป็น
จริงมาเป็นตัวพิมพ์เล็ก
>> ดังนั้นเรามาดูนี้
ให้ประโยชน์
รวบรวมตกลง
. / ประโยชน์
และแจ้งให้เราพิมพ์ใน H-E-L-L-O ในตัวพิมพ์เล็กใส่
และสังเกตเห็นว่ามันถูกแปลง เป็นตัวพิมพ์ใหญ่
ให้ฉันทำนี้อีกด้วย คำที่แตกต่างกัน
วิธีการเกี่ยวกับ D--V-I-D กับครั้งแรก D พิมพ์ใหญ่เป็นชื่อมักจะเป็น?
เข้าไป
แจ้งให้ทราบว่ายังคงถูกต้อง
มันก็ outputted แรกที่ D ไม่เปลี่ยนแปลง ผ่านทางที่อื่นสร้าง
>> ดังนั้นเก็บไว้ในใจแล้ว สองสิ่งที่นี่
หนึ่งถ้าคุณเคยต้องการตรวจสอบสอง เงื่อนไขในครั้งเดียวที่คุณสามารถและพวกเขา
ร่วมกันในขณะที่เราคาดการณ์ไว้
คุณสามารถเปรียบเทียบตัวละครในลักษณะนี้ และมีประสิทธิภาพการรักษาตัวอักษรเช่น
ตัวเลข แต่ตรงไปตรงมานี้เป็นคำด่าดังนั้น ความลับที่ผมไม่เคยไปจำ
วิธีที่จะเกิดขึ้นกับเรื่องนี้ตั้งแต่เริ่มต้น โดยไม่ต้องผ่านมันให้เหตุผลสำหรับค่อนข้าง
บิตของเวลา
>> จะไม่ได้มีดีถ้ามีคน ออกมีเขียนฟังก์ชันที่เรียกว่า
ลดลงที่จะตอบคำถามของฉันจริงหรือ ปลอมตัวละครตัวนี้เป็นตัวพิมพ์เล็ก?
ดีขอบคุณใครก็ตามที่อ้าง ctype.h ก็ตรงที่
ผมขอไปขึ้นที่นี่และเพิ่ม ctype สำหรับ C ประเภทและตอนนี้ให้ฉันไปลงที่นี่และ
เขียนบรรทัดนี้ดังนี้
>> ดังนั้นหากจะเรียกว่าเป็นราคาที่ต่ำผมเรียกร้อง s วงเล็บฉันแล้วฉันจะลบ
สองบรรทัดเหล่านี้โดยสิ้นเชิง
ดังนั้นตอนนี้คนอื่นฉันหวังที่เขียน ฟังก์ชันที่เรียกว่าเป็นราคาที่ต่ำและมัน
ผลัดกันออกพวกเขาและพวกเขาประกาศ มันภายในของ ctype.h
และตอนนี้ฉันจะออกจากสาย 27 คนเดียวที่ฉันจะออกจากสาย 31
เพียงอย่างเดียว แต่สังเกตเห็นว่าฉันได้ กระชับขึ้นรหัสของฉัน
ก็ตอนนี้ทำความสะอาด
มันยากที่น้อยกว่าที่จะมองผ่าน เพราะตอนนี้ฟังก์ชั่นยิ่งไปกว่านั้นคือ
เพื่อให้ชื่อมันก็เยี่ยมยอด ไม่สิ่งที่มันพูดว่า
>> ดังนั้นตอนนี้ฉันจะบันทึกนี้
ฉันจะซูมออก
และเช่นเดียวกับใน Scratch คุณอาจมี บูลีนค่าบูลีนจริงหรือ
เท็จที่ว่าสิ่งที่เป็น ลดลงอย่างมีประสิทธิภาพส่งกลับ
ให้ฉัน recompile
ผมขอ re-run
และตอนนี้ลองอีกครั้ง H-E-L-L-O, ใส่
ที่ดีงาม
และลองอีกครั้งให้แน่ใจว่าฉัน กรูไม่ได้บางสิ่งบางอย่างขึ้น
ที่เป็นตัวพิมพ์ใหญ่เช่นกัน
>> แต่ตอนนี้ยังไม่ดีพอเพราะ สิ่งอื่น ๆ ที่ฉันไม่เคยไป
จำเว้นแต่ว่าฉันจะทำงานผ่านมันจริงๆ อย่างรอบคอบเกี่ยวกับการพูด, กระดาษ
ทางรถไฟสายนี้ครับ
มันจะไม่ดีถ้ามี ฟังก์ชั่นเรียกตัวไปที่ด้านบน?
ด้วยปรากฎออกมี อยู่ใน ctype.h เช่นกัน
ฉันจะไปข้างหน้าและพิมพ์ -
ให้ฉันนำบรรทัดที่กลับ
แทนการนี​​้ที่นี่ให้ฉันไปข้างหน้า และพูดแทน% c
ผลของการเรียกใช้ฟังก์ชันนี้ ไปบนตัวอักษรที่ i ของ S
และตอนนี้สังเกตเห็นก็เริ่ม เล็ก ๆ น้อย ๆ ที่สมดุล
ฉันต้องติดตามหลายวิธี วงเล็บฉันเปิดและปิด
>> ดังนั้นตอนนี้ก็จะยิ่งทำความสะอาด
ตอนนี้โปรแกรมนี้จะเริ่มดีขึ้นและ ได้รับการออกแบบที่ดีกว่าเร็วเพราะ
อื่น ๆ อีกมากมายที่สามารถอ่านได้ แต่ มันไม่ขอแก้ไข
ให้ประโยชน์
. / ประโยชน์
H-E-L-L-O ลองเรียกใช้อีกครั้ง, D--V-I-D ตกลงดังนั้นเรายังคงอยู่ใน
รูปร่างที่ดีงาม
>> แต่ตอนนี้ไปด้านบน
ผมเสนอว่ามีอีกหนึ่ง การปรับแต่งเราจะทำให้ที่จะ
ดีจริงๆที่จริงๆอาจกระชับ ขึ้นรหัสนี้และจริงๆให้เราห้า
จากห้าสำหรับการออกแบบเช่น
สิ่งที่จะเป็นที่ดีที่จะกำจัด?
ดีมองว่าเหี้ยบล็อกนานนี้ รหัสเป็นเพียงการทำสิ่งที่ง่าย
>> ตอนนี้เป็นกันเช่นคุณอาจมี มองเห็นได้ในส่วนของซูเปอร์ผ่านมานี้
วันหยุดสุดสัปดาห์คุณไม่จำเป็นต้องอย่างเคร่งครัด วงเล็บปีกกาเมื่อคุณมีเพียงหนึ่ง
บรรทัดของรหัสแม้ว่าเราจะนำเสนอ ทำให้พวกเขาเพื่อที่จะทำให้มาก
ชัดเจนมากขึ้นเช่นเดียวกับใน Scratch ของรูปตัวยู บล็อกสิ่งที่อยู่ภายในของสาขา
แต่มันจะไม่ดีถ้าไปบน, เมื่อได้รับการป้อนข้อมูลของมันก็กลายเป็น
ตัวพิมพ์ใหญ่ถ้ามันไม่ได้และสิ่งที่จะ จะวิเศษในกรณีตรงข้ามถ้า
มันมีอยู่แล้วเป็นตัวพิมพ์ใหญ่?
เพียงผ่านมันผ่าน และทิ้งไว้คนเดียว
>> ดังนั้นบางทีมันอาจจะไม่ว่า
ฉันสามารถลองและเพียงแค่หวังว่า ว่ามันไม่ แต่ให้ฉัน
แนะนำสิ่งหนึ่งที่อื่น ๆ
แทนการใช้นี้ขั้วในตัว หน้าต่างลงที่นี่จำได้ว่า
ไอคอนนี้ตารางสีดำจะช่วยให้คุณ หน้าต่าง terminal ที่ใหญ่กว่าที่ฉันจะได้เต็มช่วง
หน้าจอถ้าฉันต้องการได้หรือไม่
ดังนั้นมันจะเปิดออกที่พวกเขากำลังจัดเรียงของแปลก ชื่อ แต่มีสิ่งเหล่านี้เรียกว่า
หน้าคนหน้าคู่มือมนุษย์สั้น และฉันสามารถเข้าถึงเหล่านี้โดย
คนพิมพ์ -
สิ่งที่ฉันต้องการพิมพ์?
มนุษย์บน
>> และตอนนี้สังเกตได้ถ้ามี ทำงานภายในเครื่องคอมพิวเตอร์ใน
กรณีนี้เครื่องใช้ไฟฟ้าซึ่งเป็นเพียง ระบบปฏิบัติการลินุกซ์ก็จะ
จะให้ฉันชุดคลุมเครือค่อนข้าง เอาท์พุท แต่คุณจะพบว่าเมื่อเวลาผ่านไป
ก็มักจะมีรูปแบบสวยมาก เดียวกันเพื่อให้คุณเริ่มต้นที่จะได้ใช้มัน
ให้สังเกตที่ด้านบนไปด้านบนและ เห็นได้ชัดว่าเอกสารเดียวกันคือ
สำหรับการลด
ใครก็ตามที่เขียนมันถูกตัดบางส่วน มุมและวางไว้บนหน้าหนึ่ง
จุดประสงค์สิ่งเหล่านี้ใน ชีวิตคือการแปลง
จดหมายถึงบนหรือตัวพิมพ์เล็ก
>> ขอให้สังเกตว่าภายใต้เรื่องย่อ, หน้าคน คือการสอนฉันว่าฉันมีไฟล์
รวมถึงการที่จะใช้สิ่งนี้
มันทำให้ฉันลายเซ็นเหล่านี้ ฟังก์ชั่นทั้งสองของพวกเขาแม้
แม้ว่าเราตอนนี้มีเพียง ดูแลเกี่ยวกับหนึ่ง
นี่คือคำอธิบายในขณะนี้
ไปบนแปลงตัวอักษร c เพื่อเป็นตัวพิมพ์ใหญ่ถ้าเป็นไปได้
>> ยังไม่ให้คำแนะนำว่า แต่ให้ฉัน ตอนนี้ดูอยู่ภายใต้ค่าตอบแทนสิ่ง
ที่ส่งกลับ
ดังนั้นค่าที่ส่งกลับคือ แปลงตัวอักษรหรือ C ถ้า
การแปลงเป็นไปไม่ได้
c คืออะไร?
>> ตัวละครเดิม
>> ตัวละครเดิมและเรารู้ว่า ว่าด้วยการอีกครั้งจะขึ้นไปยัง
บทสรุปและใครก็ตามที่เขียนนี้ ฟังก์ชั่นเพียงแค่ตัดสินใจว่าอินพุต
เพื่อบนและลดลงเป็นเพียง พลจะถูกเรียกว่า C
พวกเขาจะได้เรียกมันว่าสิ่งใดมากที่สุด ที่พวกเขาต้องการ แต่พวกเขาก็เก็บมันไว้
ง่ายๆเป็นค
ดังนั้นผมจึงปรึกษากับหน้าคน
ประโยคนี้ให้ความมั่นใจกับผมว่าถ้า มันไม่ได้เป็นอักษรตัวพิมพ์เล็กก็
ไปเพียงแค่ให้ฉันกลับคซึ่งเป็น ที่สมบูรณ์แบบซึ่งหมายความว่าฉันสามารถกำจัด
เงื่อนไขอื่น ๆ ของฉัน
>> เพื่อให้ฉันกลับไปที่ gedit และ ตอนนี้ให้ฉันเพียงแค่ทำเช่นนี้
ฉันจะคัดลอกคำสั่ง printf ของฉัน
ฉันจะไปข้างหน้าและขวาภายใน สำหรับการพิมพ์ห่วงว่าออกและได้รับ
กำจัดขณะนี้ทั้งนี้ถ้าสร้าง
ไม่ได้เป็นความคิดที่ดีและมันก็มาก มากที่ถูกต้องและสอดคล้องกับ
ทุกสิ่งที่เราเคยเทศน์ แต่ก็ไม่จำเป็น
ทันทีที่คุณตระหนักถึงห้องสมุดบาง ฟังก์ชั่นที่มีอยู่ว่าคนอื่น
เขียนหรือบางทีคุณอาจอ้างที่อื่น ๆ ใน ไฟล์ที่คุณสามารถใช้งานได้และจริงๆ
เริ่มต้นที่จะกระชับขึ้นรหัส
>> และเมื่อฉันพูดสิ่งที่ต้องการรูปแบบที่ดี, ความจริงที่ว่าสมาชิกผู้นี้เรียกว่า
ทำงานเพื่อสังคมหรือก่อนหน้านี้ ที่ลดลงจะเป็นประโยชน์อย่างน่าพิศวงเพราะ
พวกเขากำลังบรรยายมาก
คุณจะไม่ต้องการที่จะเรียกฟังก์ชั่นของคุณ x และ y และ z ซึ่งมี
มากความหมายน้อยมาก
คำถามใด ๆ ในซีรีส์ที่ ของการปรับปรุง?
>> ดังนั้นพอเพียงที่จะบอกว่าหนึ่งใน คบแม้จะเป็นปัญหาของคุณเอง
ชุด - ชุดปัญหาอาจจะหนึ่ง แต่ แน่นอน P ตั้งสองเป็นต้นไปและแม้
เมื่อพวกเขากำลังที่ถูกต้องไม่จำเป็นต้อง หมายความว่าพวกเขาจะสมบูรณ์แบบเพียง
หรือยังโดยเฉพาะอย่างยิ่งการออกแบบที่ดี
นั่นคือแกนอื่น ๆ ที่จะ เริ่มคิดเกี่ยวกับ
ดังนั้นนี่คือภายในสตริงของคุณ หน่วยความจำของเครื่องคอมพิวเตอร์ แต่ถ้าคุณมี
ทั้งกลุ่มของตัวอักษรเช่น H-E-L-L-O ภายในของ RAM และคิดว่า
ที่คุณในโปรแกรมของคุณโทรรับสาย หลายครั้งเช่นที่คุณ
เรียกรับสายครั้งเดียวแล้วคุณ เรียกรับสายอีกครั้ง
ดีสิ่งที่เป็นไป เกิดขึ้นเมื่อเวลาผ่านไป
>> ในคำอื่น ๆ ถ้าคุณมีสายของ รหัสแม้ว่าออกจากบริบทเช่น
สตริง s ได้รับ -
ให้ทำเช่นนี้
String ชื่อเท่ากับรับสาย
ดังนั้นคิดว่าบรรทัดของรหัสที่มีความหมาย ขอให้ผู้ใช้ชื่อของเขาหรือเธอ
นี้บรรทัดถัดไปของรหัสจะหมายถึงการถาม การใช้งานสำหรับโรงเรียนของเธอหรือของเขาและ
นี้บรรทัดถัดไปและอื่น ๆ
สมมติว่าเราให้ถาม ผู้ใช้อีกและ
สตริงอื่นและอื่น ๆ
พวกเขากำลังจะอยู่ในความทรงจำ ในขณะเดียวกัน
หนึ่งไม่ได้ไปบังคับอื่น ๆ
เป็นโรงเรียนที่ได้เขียนทับอื่น ๆ
แต่ที่พวกเขาทำทุกอย่าง จบลงในหน่วยความจำ?
>> ดีถ้าเราเริ่มที่จะวาดบนหน้าจอ, ซึ่งเราสามารถใช้สิ่งนี้
ที่นี่เหมือนกระดานดำถ้าสีดำนี้ แสดงให้เห็นถึงรูปสี่เหลี่ยมผืนผ้าของเครื่องคอมพิวเตอร์ของฉัน
หน่วยความจำที่ฉันจะเริ่มต้นโดยพลการ แบ่งออกเป็นสี่เหลี่ยมเล็ก ๆ ,
แต่ละแห่งซึ่งแสดงให้เห็นถึง หนึ่งไบต์ของหน่วยความจำ
ตรงไปตรงมาถ้าคุณมีกิกะไบต์ของ RAM วันนี้คุณมีพันล้านไบต์
ของหน่วยความจำในคอมพิวเตอร์ของคุณดังนั้น พันล้านของสี่เหลี่ยมเหล่านี้
ดังนั้นพอเพียงที่จะพูดนี้ ไม่ได้จริงๆที่จะไต่
>> แต่เราสามารถเก็บภาพวาดทั้งหมดเหล่านี้ ไม่ชัดเจนในการวัดสแควร์และ
รวมแสดงให้เห็นถึง หน่วยความจำคอมพิวเตอร์ของฉัน
ตอนนี้เราก็จะทำจุดจุดจุด
ดังนั้นในคำอื่น ๆ เมื่อตอนนี้ผมแจ้งให้ ผู้ใช้ที่มีสตริงได้รับเพื่อให้ฉัน
สตริงจะเกิดอะไรขึ้น
หากผู้ใช้ชนิดใน "สวัสดี" ที่สิ้นสุด ขึ้นมาใน H-E-L-L-O แต่คิดว่า
ประเภทของผู้ใช้แล้วใน -
ที่จริงผมไม่ควรจะทำ สวัสดีเพราะเรากำลังขอให้
พวกเขาสำหรับชื่อของพวกเขา
ดังนั้นขอกลับไปถ้าฉันสามารถทำเช่นนี้
>> ดังนั้นถ้าฉันพิมพ์ใน D--V-I-D สำหรับชื่อของฉัน แต่จำได้ว่าบรรทัดที่สองของ
รหัสถูกรับสายอีกครั้ง เพื่อให้ได้โรงเรียนของพวกเขา
ในกรณีที่คำที่คือผู้ใช้ ชนิดในจะไปต่อไปหรือไม่
ดีอาจจะมันจะไปลง H-A-R-V-A-R-D ดังนั้นแม้ว่าฉัน
วาดเป็นสองแถวนี้เป็นเพียง ทั้งกลุ่มของไบต์ในของคุณ
ของคอมพิวเตอร์ RAM
มีปัญหาในตอนนี้เพราะตอนนี้ถ้าฉัน ใช้แรมในเรื่องนี้มากพอสมควร
แต่การเรียงลำดับของวิธีไร้เดียงสาสิ่งที่คุณสามารถ ไม่เห็นความแตกต่างที่เห็นได้ชัด?
ที่หนึ่งเริ่มต้นและที่ หนึ่งปลายใช่มั้ย?
พวกเขากำลังชนิดของการทำให้เปรอะเปื้อนกัน
>> ดังนั้นมันจะเปิดออกคอมพิวเตอร์ ไม่ทำเช่นนี้
ผมขอเลื่อนจริงกลับในเวลา ไม่กี่ตัวอักษรและแทนที่จะฮาวาร์ด
ไปทันทีหลังจากที่ชื่อของผู้ใช้ ผู้ได้รับจริงที่อยู่เบื้องหลัง
ฉากอักขระพิเศษ แทรกขึ้นมาโดย
คอมพิวเตอร์สำหรับเขาหรือเธอ
/ 0 หรือที่เรียกว่าตัวอักษร nul annoyingly เรียกว่า N-U-L ไม่
N-U-L-L แต่คุณเขียนเป็น / 0
มันเป็นเพียงทั้งหมดบิตศูนย์เป็นเครื่องหมายใน ระหว่างคำแรกที่ของผู้ใช้
พิมพ์และครั้งที่สอง
>> ดังนั้นฮาร์วาร์จริงตอนนี้จบลง เป็นลำดับของตัวอักษรนี้
และอีกหนึ่ง / 0
ดังนั้นในคำอื่น ๆ โดยมีเหล่านี้ ค่าแมวมองแปดศูนย์ติดกัน
บิตตอนนี้คุณสามารถเริ่มต้นที่จะเห็นความแตกต่าง ตัวละครตัวหนึ่งจากที่อื่น
ดังนั้นตลอดเวลาสิ่งที่ถูก "สวัสดี" นี้ จริง "สวัสดี" กับ / 0 และ
ในขณะที่มีอาจจะเป็นอย่างดี เป็นแรมค่อนข้างน้อยมาก
ภายในเครื่องคอมพิวเตอร์
>> ให้ฉันทำสิ่งหนึ่งที่อื่น ๆ ในขณะนี้
แต่กลับกลายเป็นว่าทั้งหมดของสี่เหลี่ยมเหล่านี้ เราได้รับการวาดภาพพวกเขาอยู่ใช่,
สตริง แต่มากกว่าปกติ สิ่งเหล่านี้เป็นอาร์เรย์
อาร์เรย์เป็นเพียงหน่วยความจำอัน ที่กลับไปกลับไปที่ด้านหลัง,
และคุณมักจะใช้อาร์เรย์โดยวิธีการ สัญกรณ์วงเล็บตารางนี้
ดังนั้นเราจะเห็นเหล่านี้ไม่น้อย เมื่อเวลาผ่านไป แต่ให้ฉันไปข้างหน้าและ
เปิดขึ้นขอเรียกว่าทุกเพศทุกวัย
และสังเกตเห็นสิ่งที่เราสามารถทำอะไรกับ เหล่านี้เทคนิคเดียวกันเล็ก ๆ น้อย ๆ
ไวยากรณ์บิตเพิ่มเติมได้ที่นี่
>> ดังนั้นใน 17 บรรทัดของโปรแกรมนี้ - จริงให้ฉันรันโปรแกรมครั้งแรก
เพื่อให้เราสามารถเห็นสิ่งที่สิ่งนี้จะ
ผมขอเรียกร้องให้ทุกเพศทุกวัยไป รวบรวมโปรแกรมนี้
. ทุกเพศทุกวัย /
มีกี่คนที่อยู่ในห้อง?
เรียกว่าสาม
อายุของคนแรกที่?
18, 19, และ 20
และตอนนี้ค่อนข้างน่าขันผม ได้ทำโปรแกรมทุกเพศทุกวัยเหล่านั้น
คนสามคน
>> จึงมีโอกาสที่ชัดเจน สำหรับคณิตศาสตร์สนุกบางอย่างที่นี่
ขอบคุณคณิตศาสตร์ที่ถูกต้อง
18 ไป 19, 19 ไป ถึง 20 และอื่น ๆ
แต่สิ่งที่หมายจริงๆจะ ตัวอย่างที่นี่เป็นวิธีการที่เราเก็บ
ทุกเพศทุกวัยทั้งสามคน
ผมขอซูมในที่สิ่งที่ เกิดขึ้นที่นี่
>> ดังนั้นครั้งแรกที่เหล่านี้ไม่กี่บรรทัดแรกควร จะได้รับคุ้นเคยสวย
ฉันแค่เตือนผู้ใช้ให้ จำนวนของคนที่อยู่ในห้องพัก
แล้วฉันใช้ int ได้รับและทำในขณะที่ไป ทำเช่นนี้อีกครั้งและอีกครั้งและอีกครั้ง
เราได้เห็นรูปแบบที่ก่อนหน้านี้ แต่ 27 สายใหม่และจริงค่อนข้าง
มีประโยชน์และจะกลายเป็น ที่มีประโยชน์มากขึ้น
ขอให้สังเกตว่ามีอะไรที่แตกต่างกันในบรรทัดที่ 27 คือว่าผมดูเหมือนจะประกาศ
int ทุกเพศทุกวัยที่เรียกว่า แต่รอ
มันไม่ใช่แค่วัย int
เหล่านี้มีวงเล็บว่า, ด้านในของที่ n คือ
>> ดังนั้นวงเล็บ n ในบริบทนี้ไม่ได้ ด้านในของงบ printf แต่ที่นี่
แต่เพียงผู้เดียวในสาย 27, สายนี้คือ บอกให้ฉัน n ints ซึ่งแต่ละ
เป็นชนิด int
ดังนั้นนี่คือถังเพื่อที่จะพูด, ของ, ในกรณีนี้สามจำนวนเต็มกลับไป
กลับไปกลับเพื่อที่ฉันจะได้อย่างมีประสิทธิภาพ มีสามตัวแปร
ทางเลือกที่จะ ชัดเจนจะเป็นนี้
>> ถ้าผมอยากนักเรียนคนแรกของ อายุผมอาจทำเช่นนี้
ถ้าผมต้องการนักศึกษาที่สอง อายุผมอาจจะทำเช่นนี้
ถ้าผมต้องการนักศึกษาที่สาม อายุผมอาจทำเช่นนี้
และพระเจ้าที่เราต้องห้ามของทุกคน อายุในห้องนี้ -
ผมหมายถึงนี้เป็น heck ของมากของการคัดลอก, วางอีกครั้งและอีกครั้งและอีกครั้ง
และบวกเมื่อผมรวบรวมโปรแกรมนี้ ถ้านักศึกษาอีกคนหนึ่งเดินเข้ามาในกว่าออก
ของประตูที่ตอนนี้จำนวนของฉัน ของตัวแปรที่ไม่ถูกต้อง
>> ดังนั้นสิ่งที่ดีเกี่ยวกับอาร์เรย์เป็น ทันทีที่คุณเริ่มรู้สึกตัวเอง
คัดลอกและวางอัตราต่อรองการเป็นที่ ไม่ได้วิธีที่ดีที่สุด
อาร์เรย์เป็นแบบไดนามิกที่อาจเกิดขึ้น
ผมไม่ทราบล่วงหน้าว่าหลายคน จะต้องอยู่ในห้อง,
แต่ฉันรู้ว่าฉันต้อง n ของพวกเขาและฉันจะ คิดออก n เมื่อเวลามาถึง
บรรทัดของรหัสนี้หมายความว่าให้ฉัน หน่วยความจำอันมีลักษณะเช่นนี้
ซึ่งมีจำนวนของกล่องบนหน้าจอ เป็นทั้งหมดขึ้นอยู่กับว่า n
ผู้ใช้พิมพ์นิ้ว
>> ดังนั้นตอนนี้ส่วนที่เหลือของโปรแกรมนี้คือ จริงสวยคล้ายกับสิ่งที่เรา
ก็ไม่ได้ด้วยตัวอักษร
แจ้งให้ทราบฉันมีห่วงสำหรับ เริ่มต้นในปี 30 เส้น
ดังนั้นหลังจากที่ฉันได้รับอาร์เรย์ผม ย้ำจาก y เท่ากับศูนย์เมื่อถึง n
ฉันมีนี้ให้คำแนะนำ printf ข้อความแค่บอกให้ฉันอายุ
ของสมาชิกผู้% # i, ดังนั้นจำนวนหนึ่ง หมายเลขสองสามจำนวน
และทำไมฉันไม่ทำเช่นนี้?
ตรงไปตรงมามนุษย์ชอบที่จะนับหนึ่ง ขึ้นในขณะที่นักวิทยาศาสตร์คอมพิวเตอร์,
ศูนย์ขึ้น
นักวิทยาศาสตร์คอมพิวเตอร์จะไม่ได้ไป ใช้ประเภทของโปรแกรมนี้เพื่อให้เรา
ไปเพียงแค่เริ่มต้นการนับ ที่หนึ่งเหมือนคนปกติ
>> และตอนนี้อยู่ในสาย 33, แจ้งให้ทราบล่วงหน้าเล็กน้อย ชิ้นส่วนที่แตกต่างกันของไวยากรณ์
อายุที่ i ในตัวแปรประเภทนั้น อาร์เรย์เป็นไปได้ int
และตอนสุดท้ายนี้เป็นเพียง คณิตศาสตร์ลงที่นี่
ฉันตัดสินใจที่จะอยู่ในวงที่แยกต่างหากที่จะเรียกร้อง บางเวลาที่ผ่านมาและในตอนนี้มี
ห่วงแยกบรรทัดเหล่านี้ดำเนินการ
>> ปีต่อจากนี้คนที่ฉันจะเป็นผม ปีเก่า แต่สังเกตเห็นนี้ไม่ได้
ตัวแปรผม
นี่คือตอน i% สำหรับ int
และแจ้งให้ทราบเป็นตัวยึดแรกผม เสียบผมบวก 1 ดังนั้นเราจึงนับเช่น
คนปกติ
แล้วสำหรับมูลค่าของอายุของพวกเขาสำหรับ ปีที่ผมเก่าผมใช้เวลานานวงเล็บ
- ฉันและฉันทำบวกหนึ่งที่นี่ทำไม?
พวกเขาอายุแค่
มันเป็นทางเลือกของฉันโง่ของโปรแกรม
พวกเขามีอายุเพียงหนึ่งปี
ฉันสามารถพิมพ์ในจำนวนที่ใด ที่จริงผมต้องการมี
>> ดังนั้นจริงสิ่งที่ทุก ความเกี่ยวข้องที่นี่?
ดีให้ฉันจริงเลื่อนกลับ กว่าที่นี่และวาดภาพ
ของสิ่งที่อยู่ข้างหน้า
สิ่งที่เราจะทำกับเราต่อไป ชุดสองปัญหาคือเล่นน้ำใน
โลกของการเข้ารหัส
ดังนั้นนี่คือสายอักขระดังนั้น ลำดับของตัวอักษรหลายและสิ่งที่
นี้จะพูด?
มันไม่ได้อยู่ในรุ่นออนไลน์ จากภาพนิ่ง
>> ดังนั้นผมจึงเรียกร้องว่านี้เท่ากับนี้ โฆษณาโง่จากหลายปี
ที่ผ่านมาว่าจริงๆแล้วอาจจะจำ หนึ่งในต้นกำเนิดของมัน
ดังนั้นนี่คือตัวอย่างของการเข้ารหัส หรือการเข้ารหัส
แต่กลับกลายเป็นว่าถ้าคุณต้องการ จริงส่งข้อมูลหรือแบ่งปัน
ข้อมูลอย่างปลอดภัยกับใครสักคน, เช่นข้อความเช่นนี้คุณสามารถ
ช่วงชิงตัวอักษร
แต่โดยทั่วไปแล้วคำพูดเป็น ไม่ได้มีสัญญาณรบกวนแบบสุ่ม
พวกเขากำลัง permuted ในบางวิธีหรือมีการเปลี่ยนแปลง ในวิธีการบางอย่างเพื่อให้ - โอ๊ะ
ที่สปอยเลอร์สนุกสำหรับครั้งต่อไป
>> ดังนั้นคุณจึงสามารถ map สิ่งที่เห็นได้ชัดว่า O เพื่อ B ประกาศว่าสายการขึ้น
โครงสร้างเงินทุนที่ชาญฉลาด
เห็นได้ชัดว่าจะกลายเป็น r e
เห็นได้ชัดว่า F-H-E-R กลายเป็น S-U-R-E ดังนั้น มันจะเปิดออกมีการทำแผนที่และใน
กรณีที่มีคนโง่สวยนี้ การทำแผนที่ถ้าใครได้คิดออก?
นี่คือสิ่งที่เรียกว่า Rot 13, หมุน 13
มันเป็นเรื่องที่โง่ที่สุดของการเข้ารหัส เพราะกลไกอย่างแท้จริงเพียง
เพิ่ม 13 ถึงทุกหนึ่งของตัวอักษร, โง่ในแง่ที่ว่าถ้าคุณเพียงแค่
มีบิตของเวลาว่างในมือของคุณ และดินสอหรือคุณเพียงแค่คิดว่ามัน
ผ่านในหัวของคุณคุณสามารถลอง ทั้งหมดเพิ่มเติมไปได้ - หนึ่งสอง
สามจุดจุดจุดที่จะเพียงแค่ 25 หมุนตัวอักษรทั้งหมดและ
ในที่สุดคุณจะคิดออก ข้อความนี้คือสิ่งที่
ดังนั้นถ้าคุณทำอะไรบางอย่างเช่นนี้ใน โรงเรียนเกรดผ่านข้อความของคุณ
เพื่อนที่ดีที่สุดถ้าโรงเรียนเกรดของคุณ ครูเพียงแค่อ่านผ่าน
ข้อความและเดรัจฉานบังคับให้แก้ปัญหา คุณอาจมีอากาศ
คำตอบตามที่
>> ตอนนี้แน่นอนในโลกแห่งความจริง การเข้ารหัสที่ซับซ้อนมากขึ้น
นี่คือตัวอย่างของข้อความจาก ระบบคอมพิวเตอร์ที่มีชื่อผู้ใช้และ
รหัสผ่านเป็นเกือบทั้งหมดของเราทำและ นี่คือสิ่งที่รหัสผ่านของคุณอาจจะ
มองเหมือนถ้าเก็บไว้ในฮาร์ดดิสก์ของคุณ แต่ไดรฟ์ในรูปแบบการเข้ารหัส
นี้ไม่ได้เป็นเพียงการหมุนของตัวอักษร, คือ B และ B เป็น C. นี้เป็น
ซับซ้อนมากขึ้น แต่จะใช้ สิ่งที่เป็นที่รู้จักกันโดยทั่วไปว่าเป็นความลับสำคัญ
การอ่านรห​​ัส
รูปภาพนี้จะบอกต่อไปนี้ เรื่องที่มีไอคอนไม่กี่
>> ทางด้านซ้ายเรามีสิ่งที่ เราจะเรียกข้อความธรรมดา
ในโลกของการเข้ารหัสธรรมดา ข้อความที่เป็นเพียงข้อความต้นฉบับ
ที่เขียนในภาษาอังกฤษหรือฝรั่งเศส หรือภาษาใด ๆ
หากคุณต้องการเข้ารหัสมันเราจะผ่าน มัน pictorially ผ่านกุญแจดังนั้น
บางชนิดของอัลกอริทึมของฟังก์ชั่นบางอย่าง โปรแกรมหรือว่าคนที่อ้าง
ปีนป่ายที่ตัวอักษรหวังว่า ขึ้น complicatedly กว่าเพียงการเพิ่ม 13
แต่ละของพวกเขา
>> สิ่งที่คุณได้รับจากกระบวนการที่ใน ตรงกลางมีที่เรียกว่า cyphertext
ดังนั้นชนิดของคำว่าเซ็กซี่
มันก็หมายความว่ามันเข้ารหัส รุ่นของข้อความธรรมดา
และเฉพาะในกรณีที่คุณมีว่าเป็นความลับเดียวกัน 13 หรือลบ 13 แล้วคุณสามารถที่จะ
ถอดรหัสข้อความเช่นนั้น
>> ดังนั้นในการหาชุดที่สองในหมู่สิ่ง คุณจะทำอย่างไรถ้าใน Hacker
Edition คุณจะต้องเขียนโค้ดเพื่อ crack รหัสผ่านเหล่านี้หา
สิ่งที่พวกเขาและวิธีการที่พวกเขา การเข้ารหัสแม้เราจะให้คุณบิต
ของคำแนะนำไปพร้อมกัน
ใน Standard Edition ที่เราแนะนำ คู่ของยันต์, การเข้ารหัส
กลไกหนึ่งที่เรียกว่าซีซาร์หนึ่ง เรียกว่า Vigenere, ที่ยังคง
ยันต์หมุนที่จะกลายเป็น บางสิ่งบางอย่าง B กลายเป็นบางสิ่งบางอย่าง แต่
ที่คุณต้องทำมันโปรแกรม เพราะมีก็จะเป็นความลับ
สำคัญที่เกี่ยวข้องซึ่งโดยทั่วไปจะมีเป็นจำนวนมาก หรือคำหลักที่เฉพาะ
ผู้ส่งและผู้รับเหล่านี้ ข้อความควรจะเข้าใจ
>> ตอนนี้จริงมีแปลง ในโลกแห่งความจริง
นี้เช่นเป็นเด็กกำพร้าเล็ก ๆ น้อย ๆ แหวนถอดรหัสลับของแอนนี่และคุณ
จริงสามารถดำเนินการเหล่านี้ ยันต์หมุน -
กลายเป็นบางสิ่งบางอย่างจะกลายเป็น B บางสิ่งบางอย่าง - กับคู่ของล้อ,
หนึ่งอยู่ด้านนอกซึ่งเป็นหนึ่งในภายใน เช่นว่าถ้าคุณหมุนล้อหรือ
แหวนคุณจริงสามารถเข้าแถว ตัวอักษรด้วยตัวอักษรที่แตกต่างกัน
รับรหัสลับ
และเพื่อให้เป็นที่น่าตื่นเต้นสำหรับวันนี้ สิ่งที่ฉันคิดว่าฉันต้องการทำคือบิตของ
ย้อนกลับว่าถ้าคุณเปิดโทรทัศน์ วันที่ 24 ธันวาคมที่คุณสามารถดู
nauseum โฆษณาภาพยนตร์ 24 ชั่วโมงในแถว
แต่สำหรับวันนี้ผมจะเปิดขึ้นที่นี่ และให้เราเพียงแค่สองนาที
เรื่องคริสมาสต์ที่เกี่ยวข้อง pedagogically กับเพื่อนเล็ก ๆ น้อย ๆ ที่มีชื่อว่าฟี่
>> [เล่นภาพวิดีโอ]
>> จะเป็นที่รู้จักกันไปใครต่อใครว่า ราล์ฟปาร์กเกอร์ได้รับการแต่งตั้งด้วยประการฉะนี้
สมาชิกของเด็กกำพร้าแอนนี่เป็นความลับ วงกลมและมีสิทธิที่จะทั้งหมด
เกียรติยศและผลประโยชน์ ที่เกิดขึ้นดังกล่าวข้างต้น
>> ลงชื่อเด็กกำพร้าแอนนี่
ผู้รับสนองพระบรมราชโองการปิแอร์อังเดรในหมึก
เกียรติประวัติและผลประโยชน์อยู่แล้ว ที่อายุสิบเก้า
>> [ตะโกนวิทยุ]
>> มาให้ของได้รับกับมัน
ผมไม่จำเป็นต้องทั้งหมดเกี่ยวกับดนตรีแจ๊สที่ ลักลอบโจรสลัดและ
>> ฟังคืนพรุ่งนี้ การผจญภัยตอนจบของสีดำ
เรือโจรสลัด
ตอนนี้ก็ถึงเวลาสำหรับความลับของแอนนี่ ข้อความสำหรับสมาชิกที่คุณ
ของวงกลมที่เป็นความลับ
โปรดจำไว้ว่าเด็ก ๆ
เฉพาะสมาชิกของวงความลับของแอนนี่ สามารถถอดรหัสข้อความลับของแอนนี่
โปรดจำไว้ว่าแอนนี่ขึ้นอยู่กับคุณ
ตั้งหมุดของคุณเพื่อ B2
นี่เป็นข้อความ
12, 11, 2 -
>> -I am ในการประชุมลับครั้งแรกของฉัน
>> -25, 14, 11, 18, 16 -
>> -Pierre อยู่ในคืนนี้เสียงดี
ฉันจะบอกข้อความคืนนี้ว่า เป็นสิ่งสำคัญจริงๆ
>> -3, 25
นั่นเป็นข้อความจากแอนนี่ตัวเอง
โปรดจำไว้ว่าอย่าบอกใคร
>> -90 วินาทีต่อมาฉันอยู่ในห้องพักเพียงอย่างเดียว ในบ้านที่เด็กเก้า
สามารถนั่งในความเป็นส่วนตัวและถอดรหัส
Aha บีผมไปต่อไป
อีคำแรกคือ "จะ." เอส มันก็ง่ายขึ้นมาในขณะนี้
U. 25
ที่อาร์เอส
>> -Come เมื่อฟี่
ฉันต้องไป
>> -I'll be ขวาลง Ma
หวือ Gee
>> -T ทุมให้แน่ใจว่า
ให้แน่ใจว่าได้อะไร
เด็กกำพร้าอะไรเล็ก ๆ น้อย ๆ แอนนี่พยายามที่จะพูด?
ให้แน่ใจว่าได้อะไร
>> -ฟี่, แรนดี้ได้มีที่จะไป
คุณจะกรุณ​​าออกมา?
>> ทั้งหมดขวา, Ma
ฉันจะออกทางด้านขวา
>> ฉันได้รับใกล้ชิดกับขณะนี้
ความตึงเครียด was terrible
ว่ามันคืออะไร?
ชะตากรรมของดาวเคราะห์อาจ แขวนอยู่ในสมดุล
>> -ฟี่ต้องไปแรนดี้
>> -I'll จะขวาออก ร้องไห้ออกมาดัง ๆ
>> เกือบมี
มือของฉันบิน
ใจของฉันคือกับดักเหล็ก
รูขุมขนสั่นสะเทือนทุก
มันเห็นได้ชัดเกือบ
ใช่ใช่ใช่ใช่ใช่
>> -Be แน่ใจว่าจะดื่มโอวัลติของคุณ
? โอวัลติ
เชิงพาณิชย์ crummy?
เก๋าเจ้ง
>> [เล่นวิดีโอจบ]
>> ลำโพง 1: นี่คือ CS50 และที่ จะถูกตั้งค่าปัญหาสอง
ดูคุณสัปดาห์ถัดไป
>> ลำโพง 2: ตอนต่อไป CS50 นี้เกิดขึ้น
>> 1 ลำโพงดังนั้นหนึ่งหัวข้อที่เรายังไม่ได้ มองที่ป่านนี้คือ
ที่ฟังก์ชั่นของตัวชี้
ตอนนี้ตัวชี้ฟังก์ชันเป็นเพียง ที่อยู่ของประชาชน
ฟังก์ชั่น แต่เหมือน -
บุตรชายของ -