สวัสดีและยินดีต้อนรับ.
ในการบรรยายครั้งนี้ ฉันอยากจะพูด เกี่ยวกับการเริ่มต้นอาร์เรย์
เรารู้วิธีใช้อาร์เรย์ เรารู้วิธีสร้างอาร์เรย์
แต่โดยเฉพาะถ้าคุณต้องการ ในการกำหนดค่าเริ่มต้นเฉพาะให้กับอาร์เรย์
ทำอย่างไร?
ดังนั้นคุณจะต้องกำหนดชื่อย่อ ค่าสำหรับองค์ประกอบของอาร์เรย์ของคุณเป็นส่วนใหญ่
เหตุผลที่คุณต้องการ กำหนดค่าเริ่มต้นให้กับอาร์เรย์หรือแม้แต่ตัวแปรเป็นเพราะ
ทำให้ตรวจจับได้ง่ายขึ้นเมื่อมีสิ่งผิดปกติเกิดขึ้น
เมื่อคุณไม่มีข้อมูลเบื้องต้น และคุณพยายามทำอะไรบางอย่าง อาจทำให้เกิดปัญหาในโปรแกรมของคุณได้
ดังนั้นการเริ่มต้นจึงเป็นสิ่งที่ดีมาก สิ่งที่คุณอยากทำเสมอ
และเมื่อใช้อาร์เรย์จะมี หลายองค์ประกอบในอาร์เรย์
จึงมีวิธีเฉพาะที่ คุณสามารถเริ่มต้นองค์ประกอบเหล่านั้นได้
มีความต่างกัน ไวยากรณ์ที่คุณสามารถใช้ได้
แต่การเริ่มต้นเป็นสิ่งที่ดี และคุณต้องการทำมันเสมอ
อยากคุยเร็วๆจัง คุณสามารถทำอาร์เรย์ได้เนื่องจากมีวิธีการต่างๆ
เช่นเดียวกับที่คุณสามารถกำหนดเริ่มต้น ค่าให้กับตัวแปร เมื่อประกาศแล้ว
คุณยังสามารถกำหนด ค่าเริ่มต้นขององค์ประกอบของอาร์เรย์เมื่อมีการประกาศ
ในการเริ่มต้นค่าของอาร์เรย์ คุณ เพียงแค่ระบุค่าในรายการ
รายการคั่นด้วยเครื่องหมายจุลภาค และรายการทั้งหมดอยู่ในวงเล็บปีกกาคู่หนึ่ง
ดูเหมือนบางอย่างเช่นนี้
ที่นี่เรากำลังสร้าง an อาร์เรย์ชื่อเคาน์เตอร์
เป็นประเภท int มี 5 องค์ประกอบ
แล้วสิ่งที่เราทำอยู่คือเรา มีวงเล็บปีกกาและเราไม่ได้ใช้ดัชนีใด
ๆ ในที่นี้
คุณจะสังเกตเห็นว่าเราเพิ่งมี ตัวเลขคั่นด้วยเครื่องหมายจุลภาค
ที่กำลังทำอยู่คือการตั้งค่า องค์ประกอบทั้ง 5 ตัวในอาร์เรย์ตัวนับถึง
0 แต่ละองค์ประกอบเป็น 0
ถ้าเรามีอาร์เรย์อื่นและเราชื่อ จำนวนเต็มอาร์เรย์นี้ และมันก็มีขนาด
5 ด้วย แล้วเราก็มีใน วงเล็บปีกกาหลังตัวดำเนินการกำหนด
0 ลูกน้ำ 1 ลูกน้ำ 2 ลูกน้ำ 3 ลูกน้ำ 4 มันกำลังทำอะไร?
มันกำหนดจำนวนเต็มเป็นตัวแรก อาร์เรย์จำนวนเต็มขององค์ประกอบเป็น
0 องค์ประกอบที่สองถึง 1 องค์ประกอบที่สาม องค์ประกอบที่ 2 องค์ประกอบที่สี่ถึง 3 และองค์ประกอบที่ห้าถึง
4
เป็นไวยากรณ์ที่ดีที่คุณทำได้ เริ่มต้นอาร์เรย์ทันทีเมื่อคุณประกาศโดยเพียงแค่ให้
ตัวเลขคั่นด้วยเครื่องหมายจุลภาคภายในวงเล็บ และคุณต้องการทำเช่นนี้
ไม่จำเป็นต้องสมบูรณ์ด้วย เริ่มต้นอาร์เรย์ทั้งหมด
ดังนั้นใน 2 อันก่อนหน้านั้น ตัวอย่าง เราเริ่มต้นองค์ประกอบทั้ง
5 ของอาร์เรย์ขนาด 5
เกิดอะไรขึ้นถ้าคุณต้องการ เริ่มต้นบางส่วนของค่า?
หากคุณระบุค่าเริ่มต้น
ที่ไม่เท่ากับจำนวนขนาดของอาร์เรย์ แล้ว ค่าที่เหลือจะถูกตั้งค่าเป็น 0
ดังนั้นถ้าคุณทำอะไรเช่น ที่นี่คุณมีอาร์เรย์ที่เรียกว่าข้อมูลตัวอย่างประเภท
ไหลมี 500 องค์ประกอบ
แต่ในวงเล็บปีกกาทั้งหมด คุณจะเห็นว่านี่คือ 3 องค์ประกอบของเรา
นี่จะทำอะไรน่ะ มันจะเริ่มต้น 3 ค่าแรกของกลุ่มตัวอย่าง
อาร์เรย์ข้อมูลถึง 100 300 500 5.
แล้วก็เหลือ 5 497 องค์ประกอบจะเป็น 0
เลยไม่ต้อง ระบุทุกอย่าง
มีแนวคิดนี้ด้วย ของตัวเริ่มต้นที่กำหนด
นี้ได้รับการแนะนำฉันเชื่อใน C99
เป็นคุณลักษณะเล็ก ๆ น้อย ๆ ที่ดีที่คุณ สามารถเลือกและเลือกองค์ประกอบที่คุณต้องการเริ่มต้นได้
ฉันคิดว่าใน C99 พวกเขาเพิ่มและ จากนั้นใน C11 พวกเขาทำให้มันเป็นตัวเลือก
ดังนั้นขึ้นอยู่กับว่าคอมไพเลอร์ตัวไหน คุณมี คุณอาจจะหรืออาจจะไม่สามารถทำได้
แต่อยากบอก เพราะมันเป็นเรื่องธรรมดา
คอมไพเลอร์บางตัวจะไม่อนุญาตให้ คุณต้องทำสิ่งนี้หลังจาก C99
แต่ก็เจ๋งเพราะคุณทำได้ ที่จริงเพียงแค่เลือกและเลือก
เพื่อให้คุณสามารถใส่องค์ประกอบ ตัวเลขในวงเล็บคู่แล้วระบุองค์ประกอบอาร์เรย์
ที่สามารถเริ่มต้นได้และคุณสามารถทำได้ในลำดับใดก็ได้
นี่คือตัวอย่าง
อีกครั้ง เรามีอาร์เรย์ข้อมูลตัวอย่างของเรา
เป็นประเภท float
จะมีขนาด500
แต่นี่ภายในหยิกของเรา วงเล็บ เรามีดัชนีเพิ่มเติม
เรามีวงเล็บของเราใน 2 พูดว่า วงเล็บ 2 sub-2 เท่ากับ 500 5, ย่อย-1 เท่ากับ
300. 0 และ sub-0 เท่ากับ 100 0.
คั่นด้วยเครื่องหมายจุลภาค
ทั้งหมดนี้ทำคือกำหนด แบบเดียวกับที่เรามีในตัวอย่างที่แล้ว
แต่มันคือ ทำในลำดับที่แตกต่างกัน
แต่คุณยังจะไป มีองค์ประกอบ 0 หรือองค์ประกอบแรกเท่ากับ
100 ตัวที่สอง องค์ประกอบเท่ากับ 300 และอัลบั้มที่สามเท่ากับ
500 5.
แต่เรากำลังระบุ ดัชนีใดที่จะเริ่มต้นในวงเล็บปีกกา
อีกตัวอย่างหนึ่งที่นี่เรามี int อาร์เรย์ที่เรียกว่า arr มีขนาด 6
และเมื่อเราประกาศออกมา เราก็ การเริ่มต้นองค์ประกอบที่ห้าซึ่งเป็นองค์ประกอบสุดท้ายถึง
212 องค์ประกอบทั้งหมดจะเป็น 0
นี่คือตัวอย่างแบบดั้งเดิม การเริ่มต้นที่คุณเพิ่งประกาศชื่ออาร์เรย์ของคุณและ
คุณจัดหาตัวเลขที่แตกต่างกันมากมาย
ในตัวอย่างนี้ เรากำลังประกาศ อาร์เรย์และจะจัดเก็บทุกวันในทุกเดือน
และเมื่อเราผ่านมันไปได้ array และเราพิมพ์ออกมาซึ่งเป็นเรื่องธรรมดามาก
คุณมักจะใช้ วนซ้ำเพื่อพิมพ์องค์ประกอบในอาร์เรย์หรืออย่างน้อยก็วนซ้ำ
สิ่งที่เราทำอยู่คือพวกเรา แค่จะพิมพ์ออกมาในแต่ละเดือนและมีกี่วัน
มาดูสิ่งนี้ในรหัส บล็อกเพื่อแสดงผลลัพธ์
นี่คือตัวอย่างของเรา
เรามีวันและเดือนและ เรากำลังเริ่มต้นอาร์เรย์
องค์ประกอบแรกที่จะเป็น 31, 28 ถัดไป, 31 ถัดไป
คุณยังสังเกตเห็นในบรรทัดที่ 10 เราคือ ใช้defineเพื่อสร้างค่าคงที่
และในค คุณยังสามารถ ใช้คีย์เวิร์ดคงที่ ซึ่งเราจะพูดถึงและเรื่องอื่นๆ
นั่นคือ อีกวิธีหนึ่งในการสร้างค่าคงที่
แต่ตอนนี้เรากำลังคุยกันอยู่ เกี่ยวกับอาร์เรย์และการกำหนดค่าเริ่มต้น
ทำได้ง่ายมาก แยกออก ด้วยเครื่องหมายจุลภาคภายในวงเล็บปีกกา
แล้วนี่จะแสดงอะไร มันจะผ่านอาร์เรย์และมันจะดูที่
ดัชนีบวก 1 และดัชนีวัน
ก็จะเข้าเดือนที่ 1 มีกี่วันขึ้นอยู่กับว่ามีค่าอะไร
เรากำลังเข้าถึงดัชนี โดยชื่ออาร์เรย์แล้วตามด้วยค่าตัวห้อย
index ค่าและเรากำลังใช้อาร์เรย์
จึงเป็นตัวแปรที่ การเปลี่ยนแปลงผ่านการทำซ้ำแต่ละครั้ง
ดังนั้นเราจึงพยายามเรียกใช้สิ่งนี้
ผลลัพธ์ที่คุณจะไป เดือนที่ 1 มี 31 วัน เดือนที่ 2 มี 28 วัน มกราคม กุมภาพันธ์
มีนาคม เมษายน แต่ก็แค่ผ่านไป อาร์เรย์และพิมพ์วันออก
จึงเป็นข้อพิสูจน์ว่า การเริ่มต้นทำงาน
และอีกครั้งคุณจะต้องการ เพื่อเริ่มต้นข้อมูลของคุณ
มาพูดถึงเรื่องอื่นกันดีกว่า ตัวอย่างและพูดคุยเกี่ยวกับองค์ประกอบการเริ่มต้นซ้ำ
นี่จึงเป็นอีกตัวอย่างหนึ่ง แต่ในตัวอย่างนี้ เราจะใช้ตัวเริ่มต้นที่กำหนดไว้
เราจะระบุให้แน่ชัด องค์ประกอบที่เราต้องการเริ่มต้น
ดังนั้นสายหลักที่คุณควร สังเกตในที่นี้คืออันที่บอกว่าเป็นวันและเดือนที่
เรากำลังดำเนินการเริ่มต้นของเรา
คุณจะสังเกตเห็นภายในหยิก
วงเล็บที่องค์ประกอบแรกได้ 31, 28 วินาที แต่มี บางอย่างในวงเล็บที่เขียนว่า
4 จะได้ค่า 31
จากนั้นเรามีเครื่องหมายจุลภาค องค์ประกอบ 5 จะได้รับ
30 องค์ประกอบ 6 จะได้รับ 31
แล้วเราได้ 1
นี่หมายความว่าเรากำลังจะไป เขียนทับ 28, และเราจะใส่
29, ใส่เป็น 29
ดังนั้นมันจึงค่อนข้างซ้ำซ้อนที่นี่
เราไม่จำเป็นต้องทำอย่างนั้นจริงๆ แต่คุณจะลบ
sub-1 ออกเพราะ 31 และ 28 sub-1 ถูกกำหนดไว้แล้วที่นี่
แต่ดูเหมือนเราจะพูดว่า sub-1 สามารถเป็นค่า 29 ได้เช่นกัน
นี่ก็แค่ใช้ ตัวเริ่มต้นที่กำหนด
แล้วถ้าเราต้องการ ทำซ้ำค่าเดียวกัน
ตอนนี้ใน c คุณสามารถเสมอ เริ่มต้นอาร์เรย์ทั้งหมดของค่าเดียวกันหากคุณระบุ
0
คุณสามารถเริ่มต้นได้เสมอ มันเหมือนกับพารามิเตอร์ว่าง
แต่นอกเหนือจากนั้น c ไม่ จัดเตรียมกลไกทางลัดสำหรับการเริ่มต้นอาร์เรย์
องค์ประกอบ อย่างน้อยก็ไม่ใช่ใน C89
คุณอาจเห็นใน C11 อีกครั้งที่คุณ สามารถกำหนดค่าเริ่มต้นให้กับอาร์เรย์ทั้งหมดได้โดยใช้วงเล็บ
ไม่มีตัวห้อยเพียงแค่ตัวเลข
แต่ตอนนี้ใน C89 และ C99 มี ไม่มีวิธีระบุการนับซ้ำ
ไม่มีทางจะพูดได้หมดทุกองค์ประกอบ ของรังสีนี้ควรเป็น 55 เป็นต้น
ดังนั้นถ้ามันเป็นที่ต้องการในตอนแรก ตั้งค่าข้อมูลตัวอย่างทั้งหมด
500 ค่าเป็น 1 โดยทั้งหมด 500 ค่าจะมี กำหนดไว้อย่างชัดเจนซึ่งจะเป็นความเจ็บปวดอย่างมากในก้น
ดังนั้นสิ่งที่คุณจะทำคือ คุณจะ เพียงแค่ใส่ไว้ในลูป
วิธีที่ง่ายที่สุดในการทำซ้ำ ผ่านอาร์เรย์ใช้การวนซ้ำ
นี่คือตัวอย่างคร่าวๆ ของ วิธีที่คุณสามารถเริ่มต้นองค์ประกอบทั้งหมดให้เป็นค่าเดียวกัน
ในกรณีนี้แม้ว่าเรา เริ่มต้นองค์ประกอบแรกเป็น
0 1 4 9 และ 16
นี่เป็นเพียงการเริ่มต้นจริงๆ องค์ประกอบที่เหลือทั้งหมดเป็นค่า
โดยพื้นฐานแล้วองค์ประกอบที่ 6 ของ องค์ประกอบที่ 10 โดยใช้ดัชนี 5 ถึง 9
นั่นคือสิ่งที่ for loop กำลังทำอยู่
ตัวแรกของ loop คือบอกว่า เราจะเริ่มต้นองค์ประกอบจาก
5 ถึง 9 เป็น I คูณ I
แล้วที่สองสำหรับ วนนี่ควรเว้นวรรค
อ่านยากขึ้น
อันที่สองของลูปคือจริงๆ ผ่านอาร์เรย์ทั้งหมดและเพียงแค่แสดงข้อมูลไปที่
แสดงให้คุณเห็นว่า 5 ค่าสุดท้ายเริ่มต้นขึ้นจริง
ดังนั้นเมื่อใดก็ตามที่คุณต้องการทำซ้ำ ค่าเดียวกันหรือเริ่มต้นเป็นค่าต่าง
ๆ เพียงแค่ใช้การวนซ้ำ
การเริ่มต้นเป็นสิ่งสำคัญอีกครั้ง
คุณจะต้องการเริ่มต้นดังนั้น ตรวจสอบให้แน่ใจว่าไวยากรณ์นี้เป็นลักษณะที่สองสำหรับคุณเพราะเราจะ
ใช้อาร์เรย์ค่อนข้างน้อยในค.