>> [เล่นเพลง]
DOUG LLOYD: สิทธิทั้งหมด
การทำงานกับซิงเกิ้ล ตัวแปรคือความสนุกสวย
แต่ถ้าเราต้องการที่จะทำงาน ที่มีจำนวนมากของตัวแปรที่
แต่เราไม่ต้องการที่จะมีพวงของ ชื่อแตกต่างกันบินไปรอบ ๆ รหัสของเราหรือไม่
ในกรณีนี้มีอาร์เรย์ จะเข้ามามีประโยชน์จริงๆ
อาร์เรย์เป็นข้อมูลพื้นฐานจริงๆ โครงสร้างการเขียนโปรแกรมภาษาใด ๆ
ที่คุณจะใช้
และพวกเขากำลังจริงๆประโยชน์จริงๆ โดยเฉพาะอย่างยิ่งในขณะที่เราจะเห็นในซี 50
>> เราใช้อาร์เรย์ที่จะถือ ค่าของชนิดข้อมูลเดียวกัน
ในสถานที่ที่หน่วยความจำที่อยู่ติดกัน
นั่นคือจะบอกว่ามันเป็น วิธีการที่เราสามารถจัดกลุ่ม
พวงของจำนวนเต็มร่วมกันใน หน่วยความจำหรือพวงของตัวอักษร
หรือลอยอยู่ในความทรงจำจริงๆ ใกล้กันและการทำงาน
กับพวกเขาโดยไม่ต้องให้แต่ละ หนึ่งในชื่อที่เป็นเอกลักษณ์ของตัวเองซึ่งสามารถ
ได้รับยุ่งยากหลังจากที่ในขณะที่น้อย
>> ตอนนี้วิธีหนึ่งที่จะ analogize อาร์เรย์ คือการคิดเกี่ยวกับการโพสต์ในประเทศของคุณ
สำนักงานเป็นครั้งที่สอง
ดังนั้นก้าวออกไปจากการเขียนโปรแกรม และเพียงแค่ปิดตาของคุณ
และเห็นภาพในใจของคุณ ที่ทำการไปรษณีย์ในพื้นที่ของคุณ
โดยปกติแล้วในโพสต์มากที่สุด สำนักงานมีธนาคารขนาดใหญ่
กล่องที่ทำการไปรษณีย์บนผนัง
>> อาร์เรย์เป็นบล็อกขนาดยักษ์ ของหน่วยความจำที่ต่อเนื่องกัน
เช่นเดียวกับที่อีเมล ธนาคารในสำนักงานของคุณโพสต์
เป็นพื้นที่ขนาดใหญ่บน ผนังของที่ทำการไปรษณีย์
อะเรย์ได้รับการแบ่งออกเป็นขนาดเล็ก เหมือนบล็อกขนาดของพื้นที่
แต่ละที่จะเรียกว่าองค์ประกอบใน เช่นเดียวกับที่ผนังของการโพสต์
สำนักงานได้รับการแบ่งออกเป็นขนาดเล็ก เหมือนบล็อกขนาดของพื้นที่
ซึ่งเราเรียกกล่องใบสั่ง
แต่ละองค์ประกอบของอาร์เรย์สามารถ เก็บจำนวนหนึ่งของข้อมูล
เช่นเดียวกับตู้ไปรษณีย์แต่ละสามารถ จะถือจำนวนหนึ่งของจดหมาย
>> สิ่งที่สามารถเก็บไว้ในองค์ประกอบของแต่ละ อาร์เรย์เป็นตัวแปรของข้อมูลเดียวกัน
ประเภทเช่น int หรือถ่านเพียง เหมือนในที่ทำการไปรษณีย์ของคุณกล่อง
คุณสามารถพอดีกับสิ่งที่ ประเภทที่คล้ายกัน
เช่นตัวอักษรหรือแพคเกจขนาดเล็ก
สุดท้ายเราสามารถเข้าถึงองค์ประกอบของแต่ละ อาร์เรย์โดยตรงจากจำนวนดัชนี
เช่นเดียวกับที่เราสามารถเข้าถึงที่ทำการไปรษณีย์ของเรา กล่องโดยรู้จำนวนกล่องจดหมายของตน
หวังว่าการเปรียบเทียบว่า จะช่วยให้คุณได้รับหัวของคุณ
ความคิดของอาร์เรย์โดย analogizing อย่างอื่น
ที่คุณอาจจะ คุ้นเคยกับ
>> ใน C องค์ประกอบของอาร์เรย์ที่มี จัดทำดัชนีเริ่มจาก 0 ไม่ได้มาจาก 1
และนี่คือสิ่งที่สำคัญจริงๆ
และในความเป็นจริงนี้คือเหตุผลที่เราในซี 50, และเหตุผลที่นักวิทยาศาสตร์คอมพิวเตอร์บ่อย
จะนับจาก 0 เป็น เพราะของอาร์เรย์ของ C
การจัดทำดัชนีซึ่งมักจะเริ่มต้นที่ 0
ดังนั้นถ้าอาร์เรย์ประกอบด้วยองค์ประกอบ n, องค์ประกอบแรกของอาร์เรย์ที่
ตั้งอยู่ที่ดัชนี 0 องค์ประกอบสุดท้ายของอาร์เรย์
ตั้งอยู่ที่ n ดัชนีลบ 1
อีกครั้งถ้ามีองค์ประกอบ n ของเรา อาร์เรย์ดัชนีสุดท้ายคือ n ลบ 1
>> ดังนั้นถ้าอาร์เรย์ของเรามี 50 องค์ประกอบที่ องค์ประกอบแรกตั้งอยู่ที่ดัชนี 0,
และองค์ประกอบสุดท้าย ตั้งอยู่ที่ 49 ดัชนี
แต่น่าเสียดายที่หรือโชคดี ขึ้นอยู่กับมุมมองของคุณ
ซีผ่อนปรนมากที่นี่
มันจะไม่ทำให้คุณไม่สามารถ จะออกจากขอบเขตของอาร์เรย์ของคุณ
คุณสามารถเข้าถึงลบ 3 องค์ประกอบของอาร์เรย์ของคุณ
หรือองค์ประกอบที่ 59 ของอาเรย์ของคุณ ถ้าอาร์เรย์ของคุณมีเพียง 50 องค์ประกอบ
มันจะไม่หยุดคุณจากโปรแกรม รวบรวม แต่ในเวลาทำงาน
คุณอาจพบ หวั่นผิดส่วน
ถ้าคุณเริ่มต้นในการเข้าถึงหน่วยความจำ ที่อยู่นอกขอบเขตของสิ่งที่
ที่คุณถามโปรแกรมของคุณเพื่อให้คุณ
ดังนั้นต้องระวัง
>> อะไรอาร์เรย์ ประกาศมีลักษณะอย่างไร
ทำอย่างไรเรารหัสอาร์เรย์คงอยู่ เหมือนอย่างที่เรารหัสตัวแปรอื่น ๆ ?
มีสามส่วนไปยังอาร์เรย์มี declaration-- ชนิดชื่อ
และขนาด
นี้เป็นอย่างมากคล้ายกับ ประกาศตัวแปรซึ่ง
เป็นเพียงชนิดและชื่อ องค์ประกอบขนาดเป็น
กรณีพิเศษสำหรับอาร์เรย์ เพราะเราจะได้รับพวงของพวกเขา
ในเวลาเดียวกัน.
>> ดังนั้นชนิดคือชนิดของตัวแปรคุณ ต้องการองค์ประกอบของอาร์เรย์แต่ละที่จะเป็น
ไม่ต้องการให้อาร์เรย์ของจำนวนเต็มแล้ว?
จากนั้นชนิดของข้อมูลของคุณควรจะ int
คุณต้องการให้เป็น อาร์เรย์ของคู่ลอยหรือ?
ชนิดข้อมูลที่ควรจะเป็นคู่หรือลอย
ชื่อคือสิ่งที่คุณ ต้องการที่จะเรียกอาเรย์ของคุณ
สิ่งที่คุณต้องการที่จะตั้งชื่อยักษ์นี้ ธนาคารของจำนวนเต็มหรือลอยหรือตัวอักษร
หรือคู่หรือสิ่งที่มีคุณ?
สิ่งที่คุณต้องการที่จะเรียกมันได้หรือไม่
สวยอธิบายตนเอง
>> สุดท้ายขนาดที่จะไป ภายในของตารางวงเล็บ
เป็นวิธีการที่หลาย ๆ องค์ประกอบที่คุณต้องการ เช่นอาร์เรย์ของคุณมี
วิธีจำนวนเต็มจำนวนมากที่คุณต้องการ?
วิธีลอยจำนวนมากที่คุณต้องการ?
>> ดังนั้นตัวอย่างเช่น int นักเรียนเกรด 40
นี้ประกาศอาร์เรย์เรียกว่านักศึกษา เกรดซึ่งประกอบด้วย 40 จำนวนเต็ม
อธิบายตนเองสวยผมหวังว่า
นี่คือตัวอย่างของผู้อื่น
ราคาเมนูคู่ 8
นี้จะสร้างอาร์เรย์เรียกว่า ราคาเมนูซึ่งประกอบด้วย
ของห้องพักในหน่วยความจำสำหรับคู่แปด
>> ถ้าคุณคิดว่าทุกองค์ประกอบ ของอาร์เรย์ของชนิดข้อมูลชนิดหนึ่ง
ดังนั้นสำหรับตัวอย่างเช่นองค์ประกอบหนึ่งของ อาร์เรย์ชนิด int เป็นเช่นเดียวกับคุณ
จะคิดว่าคนอื่น ๆ ตัวแปรชนิด int
การดำเนินงานทั้งหมดที่เราคุ้นเคย กล่าวถึงก่อนหน้านี้ในการดำเนินงาน
วิดีโอจะทำให้ความรู้สึก
ดังนั้นที่นี่เราสามารถประกาศอาร์เรย์ ของ Booleans เรียก Truthtable,
ซึ่งประกอบด้วยห้องพัก 10 Booleans
>> และจากนั้นก็เช่นเดียวกับเราก็สามารถกำหนด ค่าให้กับตัวแปรอื่น ๆ ของประเภท
บูลีนที่เราจะพูดอะไรบางอย่าง เช่น Truthtable วงเล็บเหลี่ยม
2 ซึ่งเป็นวิธีการที่เราระบุ ซึ่งองค์ประกอบของตารางความจริง?
องค์ประกอบที่สามของ ตารางความจริงเพราะจำ
เรากำลังนับจาก 0
นั่นคือวิธีการที่เราแสดง องค์ประกอบที่สามของตารางความจริง
Truthtable 2 เท่ากับเท็จ เช่นเดียวกับที่เราจะได้ declare--
หรือเราสามารถกำหนดค่อนข้างใด ๆ ตัวแปรชนิดบูลีนเป็นเท็จ
>> นอกจากนี้เรายังสามารถใช้งานได้ในสภาพ
ถ้า (truthtable 7 == จริง) ซึ่งก็คือการพูดว่า
ถ้าองค์ประกอบที่แปด ของ Truthtable เป็นความจริง
บางทีเราต้องการพิมพ์ข้อความ ให้กับผู้ใช้ printf ("TRUE n!") ;.
ที่ทำให้เราที่จะพูด Truthtable 10 เท่ากับความจริงใช่มั้ย?
ดีฉันสามารถ แต่ก็สวย อันตรายเพราะจำ
เรามีอาร์เรย์ของ 10 Booleans
ดังนั้นดัชนีสูงสุดว่า คอมไพเลอร์ได้ให้เราคือ 9
>> โปรแกรมนี้จะรวบรวม แต่ ถ้าอย่างอื่นในหน่วยความจำ
อยู่ที่เราจะ คาดว่า Truthtable 10 ที่จะไป
เราสามารถประสบความผิดของการแบ่งส่วน เรา อาจได้รับไปกับมัน แต่โดยทั่วไป
อันตรายสวย
ดังนั้นสิ่งที่ฉันทำนี่คือ C กฎหมาย แต่ไม่จำเป็นต้องย้ายที่ดีที่สุด
ตอนนี้เมื่อคุณประกาศและ เริ่มต้นอาร์เรย์พร้อมกันที่
มีจริงสวย ไวยากรณ์พิเศษที่คุณ
สามารถใช้ในการเติมอาร์เรย์ ที่มีค่าเริ่มต้นของ
ก็จะได้รับยุ่งยากในการ ประกาศอาร์เรย์ขนาด 100,
แล้วต้องบอกว่าองค์ประกอบ 0 เท่ากับนี้ องค์ประกอบที่ 1 เท่ากับนี้
องค์ประกอบที่ 2 เท่ากับว่า
จุดคืออะไรใช่มั้ย?
>> หากเป็นอาร์เรย์ขนาดเล็กคุณ สามารถทำอะไรเช่นนี้
บูล truthtable 3 เท่ากับเปิด วงเล็บปีกกาแล้วจุลภาค
แยกรายชื่อขององค์ประกอบ ที่คุณต้องการที่จะใส่ในอาร์เรย์
อัฒภาควงเล็บปีกกาปิดแล้ว
นี้จะสร้างอาร์เรย์ของ ขนาดที่เรียกว่าสาม Truthtable,
ที่มีองค์ประกอบเท็จจริงและเป็นความจริง
และในความเป็นจริง instantiation ไวยากรณ์ฉันมีที่นี่เป็น
เหมือนกับการทำ ไวยากรณ์แต่ละองค์ประกอบดังต่อไปนี้
ทั้งสองวิธีการเข้ารหัสจะ ผลิตอาร์เรย์เดียวกันแน่นอน
>> ในทำนองเดียวกันเราสามารถย้ำ มากกว่าทุกองค์ประกอบ
ของอาร์เรย์โดยใช้ห่วงซึ่งใน ความเป็นจริงเป็นอย่างมากมากแนะนำ
ที่บ้านออกกำลังกาย
คุณจะทำอย่างไรในการสร้างอาร์เรย์ 100 เลขที่
องค์ประกอบของอาร์เรย์ทุกดัชนีของตนหรือไม่
ดังนั้นสำหรับตัวอย่างเช่นเรามีอาร์เรย์ของ 100 จำนวนเต็มและในองค์ประกอบแรก
เราต้องการที่จะนำ 0
ในองค์ประกอบที่สองที่เราต้องการที่จะนำ 1
ในองค์ประกอบที่สามที่เราต้องการ ที่จะนำ 2; และอื่น ๆ และอื่น ๆ
นั่นเป็นสิ่งที่ดีจริงๆ การออกกำลังกายที่บ้านจะทำอย่างนั้น
>> ที่นี่มันไม่ได้ดู ชอบมากเกินไปมีการเปลี่ยนแปลง
แต่สังเกตเห็นว่าในระหว่าง วงเล็บเวลานี้
ผมเคยมองข้ามจริงจำนวน
หากคุณกำลังใช้นี้มาก instantiation พิเศษ
ไวยากรณ์ที่จะสร้าง อาร์เรย์คุณจริงทำไม่ได้
ต้องระบุขนาด ของอาร์เรย์ก่อน
คอมไพเลอร์จะฉลาดพอ ที่จะรู้ว่าคุณจริง
ต้องการอาร์เรย์ขนาด 3, เพราะคุณใส่สามองค์ประกอบ
ไปทางขวาของเครื่องหมายเท่ากับ
ถ้าคุณได้ใส่สี่มันจะมี คุณได้รับตารางความจริงขนาดสี่;
และอื่น ๆ และอื่น ๆ
>> อะเรย์ไม่ได้ จำกัด เพียงครั้งเดียว มิติซึ่งเป็นเย็นสวย
จริงๆคุณสามารถมีเป็นจำนวนมาก specifiers ด้านข้างตามที่คุณต้องการ
ดังนั้นสำหรับตัวอย่างเช่นถ้าคุณต้องการที่จะสร้าง คณะกรรมการเกมเรือรบซึ่ง
ถ้าคุณเคยเล่นเป็นเกมที่เป็น เล่นกับหมุดที่ 10 10 ตาราง
คุณสามารถสร้างอาร์เรย์เช่นนี้
คุณอาจจะบอก Bool วงเล็บเหลี่ยมเรือรบ 10
ปิดตารางตารางวงเล็บ วงเล็บ 10 ปิดวงเล็บเหลี่ยม
>> แล้วคุณสามารถเลือกที่จะ แปลความหมายในใจของคุณเป็น 10
10 ตารางของเซลล์
ตอนนี้ในความเป็นจริงในหน่วยความจำ จริงๆมันไม่เพียง
ยังคงเป็น 100 องค์ประกอบ อาร์เรย์มิติเดียว
นี้และในความเป็นจริงจะไปสำหรับถ้าคุณ มีสามมิติหรือสี่หรือห้า
จริงๆมันก็ไม่คูณ ทั้งหมดของ indices--
หรือทั้งหมดของขนาด specifiers-- กัน
และคุณก็จะได้รับหนึ่งมิติ อาร์เรย์ของขนาดที่
>> แต่ในแง่ขององค์กรและการ การมองเห็นและการรับรู้ของมนุษย์
มันสามารถเป็นจำนวนมากได้ง่ายขึ้น ในการทำงานกับตาราง
ถ้าคุณกำลังทำงานในเกม เช่น Tic-TAC นิ้วเท้าหรือเรือรบ
หรือสิ่งที่ต้องการ
มันเป็นสิ่งที่เป็นนามธรรมที่ดี แทนที่จะต้อง
คิดเกี่ยวกับ Tic-TAC นิ้วเท้า คณะกรรมการที่เป็นสายของเก้า
สี่เหลี่ยมหรือคณะกรรมการเรือรบ สาย 100 สี่เหลี่ยม
10 10 ตารางหรือสาม โดยสามตารางน่าจะเป็น
มากขึ้นและง่ายต่อการรับรู้
>> ตอนนี้สิ่งที่จริงๆ ที่สำคัญเกี่ยวกับอาร์เรย์
เราสามารถรักษาแต่ละคน องค์ประกอบของอาร์เรย์เป็นตัวแปร
เราเห็นว่าก่อนหน้านี้ เมื่อเราได้กำหนด
ค่าทรูบาง Booleans หรือการทดสอบพวกเขาในเงื่อนไข
แต่เราไม่สามารถรักษาทั้งหมด อาร์เรย์ตัวเองเป็นตัวแปร
เราไม่สามารถยกตัวอย่างเช่นกำหนดหนึ่งอาร์เรย์ ไปยังอาร์เรย์ใช้อื่นที่ได้รับมอบหมาย
ผู้ประกอบการ
มันไม่ได้ตามกฎหมายซี
>> ถ้าเราต้องการสำหรับ example-- สิ่งที่ เราจะทำในตัวอย่างที่
จะมีการคัดลอกอาร์เรย์หนึ่งไปยังอีก
ถ้าเราต้องการที่จะทำอย่างนั้นเราจริง จำเป็นต้องใช้ในการคัดลอกห่วงมากกว่า
แต่ละองค์ประกอบของแต่ละบุคคลในช่วงเวลาหนึ่ง
ฉันรู้ว่ามันเสียเวลาน้อย
>> ดังนั้นสำหรับตัวอย่างเช่นถ้าเรามีคู่เหล่านี้ บรรทัดของรหัสที่จะทำงานนี้
ดีไม่มีก็จะไม่ได้ใช่มั้ย?
เพราะเรากำลังพยายาม การกำหนดอาหารที่บาร์
ที่ไม่ได้ไปทำงาน เพราะมันเป็นอาร์เรย์
และเราก็อธิบาย ที่ที่ไม่ถูกต้องตามกฎหมายซี
>> แต่ถ้าเราต้องการ คัดลอกเนื้อหาของอาหาร
ในแถบซึ่งเป็นสิ่งที่ เรากำลังพยายามที่จะทำที่นี่
เราจะต้องไวยากรณ์เช่นนี้
เรามีสำหรับวงที่จะไป จากเจมีค่าเท่ากับ 0 ถึง 5,
และเราเพิ่มในเจย้ำของทุก ห่วงและกำหนดองค์ประกอบเช่นว่า
ซึ่งจะส่งผลในแถบยัง เป็นหนึ่งสองสามสี่ห้า
แต่เราต้องทำอย่างนี้ ช้าองค์ประกอบโดยองค์ประกอบทาง
แทนโดยเพียงแค่ คัดลอกอาร์เรย์ทั้งหมด
ในการเขียนโปรแกรมอื่น ๆ ภาษาคนที่ทันสมัย​​มากขึ้น
คุณสามารถในความเป็นจริงทำเพียงแค่ ที่เรียบง่ายที่มีค่าเท่ากับไวยากรณ์
แต่ C โชคไม่ดีที่เรา ไม่ได้รับอนุญาตให้ทำเช่นนั้น
>> ขณะนี้มีคนอื่น ๆ สิ่งที่ผมอยากจะพูดถึง
เกี่ยวกับอาร์เรย์ที่สามารถเล็ก ๆ น้อย ๆ บิตหากินครั้งแรกที่คุณ
ทำงานกับพวกเขา
เรากล่าวถึงในวิดีโอ เกี่ยวกับขอบเขตตัวแปร
ตัวแปรที่มากที่สุดในซีเมื่อคุณเรียก พวกเขาในฟังก์ชั่นจะถูกส่งผ่านโดยค่า
คุณจำสิ่งที่มันหมาย บางสิ่งบางอย่างที่จะผ่านโดยค่า?
มันหมายความว่าเรากำลังทำสำเนาได้ ตัวแปรที่ถูกส่งผ่านไปใน
ฟังก์ชั่น callee ฟังก์ชั่น ที่ได้รับตัวแปร
ไม่ได้รับตัวแปรตัวเอง
จะได้รับของตัวเองในท้องถิ่น สำเนาของมันในการทำงานกับ
>> อะเรย์ของหลักสูตรทำ ไม่ปฏิบัติตามกฎนี้
แต่สิ่งที่เราเรียกสิ่งนี้ จะผ่านโดยการอ้างอิง
callee จริง ไม่ได้รับอาร์เรย์
มันไม่ได้รับของ สำเนาตัวเองของมัน
และถ้าคุณคิดเกี่ยวกับ มันทำให้ความรู้สึกนี้
ถ้าอาร์เรย์มีขนาดใหญ่จริงๆก็ ต้องใช้เวลามากและความพยายาม
ทำสำเนาของอาร์เรย์ของ 100 หรือ 1,000 หรือ 10,000 องค์ประกอบ
ว่ามันไม่คุ้มค่าสำหรับ ทำงานที่จะได้รับสำเนาของมัน
ทำผลงานบางอย่างกับมันแล้ว เพียงทำได้ด้วยการคัดลอก;
มันไม่จำเป็นต้องมี มันแขวนอยู่รอบ ๆ อีกต่อไป
>> เพราะมีบางอาร์เรย์ ขนาดใหญ่และยุ่งยาก
เราเพียงแค่ส่งพวกเขาโดยการอ้างอิง
เราก็ไว้วางใจฟังก์ชั่นที่ จะไม่ผิดอะไร
ดังนั้นจึงไม่ได้รับจริงอาร์เรย์
จะไม่ได้รับสำเนาของตัวเองของมัน
>> ดังนั้นสิ่งนี้หมายความว่าอย่างไร, แล้วเมื่อ callee
ปรุงแต่งองค์ประกอบของอาร์เรย์?
เกิดอะไรขึ้น?
สำหรับตอนนี้เราจะเงา มากกว่าว่าทำไมตรงนี้
ที่เกิดขึ้นว่าทำไมอาร์เรย์ จะถูกส่งผ่านโดยการอ้างอิง
และทุกอย่างอื่นจะผ่านค่า
แต่ผมสัญญาว่าคุณเราจะ กลับมาและให้คำตอบ
นี้ในวิดีโอต่อมา
>> นี่คือหนึ่งในการออกกำลังกายมากขึ้นสำหรับคุณ ก่อนที่เราจะตัดขึ้นสิ่งที่อยู่ในอาร์เรย์
พวงของรหัสที่นี่ที่ ไม่ได้โดยเฉพาะรูปแบบที่ดี
เพียงแค่ฉันจะทำให้คำเตือนว่า
มีในความคิดเห็นไม่ได้ที่นี่ ซึ่งเป็นรูปแบบที่ดีงาม
แต่มันเป็นเพียงเพราะฉันอยากจะเป็น สามารถให้พอดีกับทุกอย่างบนหน้าจอ
>> ที่ด้านบนคุณจะเห็นว่าฉันมี สองฟังก์ชั่นสำหรับการประกาศอาร์เรย์ชุด
และชุด int
อาร์เรย์ชุดเห็นได้ชัดว่าจะใช้เวลาอาร์เรย์ สี่จำนวนเต็มเป็นปัจจัยการผลิต
และชุด int เห็นได้ชัดใช้เวลา จำนวนเต็มเดียวเป็นปัจจัยการผลิต
แต่ทั้งสองคนไม่ได้มีเอาท์พุท
ผลผลิตผลตอบแทน พิมพ์ของแต่ละคนจะถือเป็นโมฆะ
ในหลักเรามี คู่ของสายรหัส
เราประกาศตัวแปรจำนวนเต็ม เรียกว่าและกำหนดค่า 10
เราขอประกาศอาร์เรย์ของสี่จำนวนเต็ม เรียกว่า B และกำหนดองค์ประกอบ 0, 1,
2 และ 3 ตามลำดับ
จากนั้นเราจะมีการเรียกร้องให้ตั้ง int และการเรียกร้องให้ตั้งแถว
คำนิยามของอาร์เรย์ชุดและชุด int จะลงด้านล่างที่ด้านล่าง
>> ดังนั้นอีกครั้งฉันขอให้คุณคำถาม
สิ่งที่ได้รับพิมพ์ออกมา ที่นี่ในตอนท้ายของหลักหรือไม่
มีการพิมพ์เป็นเทือกเขา ฉัน พิมพ์ออกจำนวนเต็ม
ผมพิมพ์ออกเนื้อหาของ A และ เนื้อหาของวงเล็บเหลี่ยม B 0
หยุดวิดีโอที่นี่และใช้เวลาไม่กี่นาที
คุณสามารถคิดออกว่านี้ ฟังก์ชั่นจะพิมพ์ที่สิ้นสุดหรือไม่
หวังว่าถ้าคุณจำ ความแตกต่างระหว่างการส่งผ่านโดยค่า
และผ่านโดยการอ้างอิงนี้ ปัญหาไม่ได้อยู่ที่ยุ่งยากเกินไปสำหรับคุณ
และคำตอบที่คุณจะ ได้พบคือ
หากคุณไม่แน่ใจว่าจริงๆเป็นไปได้ ทำไมเป็นกรณีที่ใช้เวลาสอง
กลับไปทบทวนสิ่งที่ฉันเป็นเพียง พูดคุยเกี่ยวกับการผ่านอาร์เรย์
โดยการอ้างอิงเมื่อเทียบกับการส่งผ่าน ตัวแปรอื่น ๆ โดยค่า
และหวังว่ามันจะทำให้ ความรู้สึกนิด ๆ หน่อย ๆ
>> ฉันลอยด์ดั๊กและนี่คือ CS50