สวัสดีและยินดีต้อนรับกลับ ในการบรรยายนี้ ฉันต้องการนำเสนอการสาธิตหรือวิธีแก้ปัญหาของความท้าทายครั้งก่อนของเรา
ซึ่งจะทำให้คุณคุ้นเคยกับไวยากรณ์ของตัวชี้ แนวคิดของตัวชี้ การกำหนดที่อยู่ให้กับตัวชี้ จากนั้นจึงแสดงผลลัพธ์สำหรับตัวชี้
เรามาสร้างบล็อคโค้ดกัน และเราจะสร้างโปรเจ็กต์ใหม่ โปรเจ็กต์ c ใหม่
ที่เรียกว่าพอยน์เตอร์เบสิก เพราะมันจะเป็นพื้นฐานของพอยน์เตอร์
ดังนั้นเราจึงรู้วิธีการทำทั้งหมดนี้ เราจะเลือกแอปพลิเคชันคอนโซล ไปตรวจสอบให้แน่ใจว่าเรามี
c แล้วเรียกข้อมูลพื้นฐานเกี่ยวกับพอยน์เตอร์นี้
แนวคิดของตัวชี้นี้สำคัญมากจริงๆ
ดังนั้นเราจึงเริ่มช้าและดำเนินต่อไปจากที่นั่น
งั้นเราไปกันเลย ที่นี่เรามีหลักของเรา
ตอนนี้สิ่งที่เราต้องการทำคือเราต้องการสร้างตัวแปรจำนวนเต็มหนึ่งตัวแล้วจึงตัวแปรตัวชี้หนึ่งตัว
และเราต้องการเริ่มต้นทั้งสองอย่าง
อย่างแรกที่ฉันจะทำคือ ฉันจะสร้างตัวแปรจำนวนเต็ม
และฉันจะตั้งชื่อมันว่าตัวเลขหรือตัวเลข
และผมจะเริ่มต้นสิ่งนี้เป็น 150
ในการสร้างตัวแปรพอยน์เตอร์ จะต้องเป็นชนิดเดียวกัน
ในการสร้างพอยน์เตอร์ สิ่งที่คุณต้องทำคือทำประเภทข้อมูล ตามด้วยเครื่องหมายดอกจันในการประกาศ
จากนั้นเราจะเรียก pnum นี้สำหรับหมายเลขพอยน์เตอร์
โดยปกติ คุณต้องการเริ่มต้นตัวแปรของคุณที่เป็นตัวชี้ด้วยคำนำหน้า p
และเป็นความคิดที่ดีเสมอเมื่อคุณสร้างพอยน์เตอร์เริ่มต้นให้เป็นโมฆะ
Null เป็นคีย์เวิร์ดพิเศษที่บอกว่าตัวชี้ไม่ชี้ไปที่สิ่งใด
เมื่อเรากำหนดค่าเริ่มต้นของตัวแปรทั้งสองแล้ว
จำนวนเต็ม num และตัวชี้จำนวนเต็ม num แล้ว เราต้องการกำหนดบางอย่างให้กับตัวชี้
เพราะตอนนี้ตัวชี้ของเราไม่ได้ชี้อะไรในหน่วยความจำ
และคุณต้องการให้แน่ใจว่าอะไรก็ตามที่คุณกำหนดตัวชี้ให้กับสิ่งนั้น
มีตำแหน่งหน่วยความจำสำหรับมัน จัดสรรหน่วยความจำไว้
ในกรณีนี้ หากเราจะกำหนด num ให้ num เป็นจำนวนเต็มในบรรทัดที่
6 ที่จัดสรรหน่วยความจำไว้
C จะจัดสรรหน่วยความจำโดยอัตโนมัติสำหรับการประกาศตัวแปรใดๆ
แม้แต่ตัวชี้ในบรรทัดที่ 7 นี้ก็มีหน่วยความจำที่จัดสรรไว้เพื่อเก็บตัวชี้เท่านั้น
ไม่ได้หมายความว่ามีการจัดสรรหน่วยความจำสำหรับสิ่งที่ชี้ไป
ในการเซ็น pnum ค่าของ address สิ่งที่เราต้องทำคือ
pnum เท่ากับ ampersand ซึ่งเป็นแอดเดรสของโอเปอเรเตอร์ และเราต้องการกำหนดแอดเดรสของ num
นั้น
Num มีหน่วยความจำที่จัดสรรไว้แล้วและเราประกาศ
ดังนั้นบรรทัดที่ 9 ก็แค่กำหนดที่อยู่ของ num ให้กับพอยน์เตอร์
มันง่ายอย่างนั้น
ตอนนี้ เมื่อคุณสร้างพอยน์เตอร์และกำหนดที่อยู่ให้กับตัวชี้ คุณสามารถสร้างหน่วยความจำไดนามิกของคุณเองและกำหนดสิ่งนั้นได้
แต่สำหรับการออกกำลังกายอื่น ในกรณีนี้
เราได้สร้างตัวแปรของเราแล้ว เราจะชี้ไปที่ค่าของตัวแปรนั้น
เราต้องกำหนดที่อยู่ของ num
หลังจากที่เราพิมพ์งานเสร็จ เราก็ได้เริ่มต้นทุกอย่างแล้ว
ตอนนี้เราแค่ต้องการพิมพ์ข้อมูลบางอย่าง
เราจะใช้ printf และฉันจะบอกว่าก่อนอื่น ฉันต้องการพิมพ์ค่าของ
pnum address
ตอนนี้ค่า pnum สำหรับที่อยู่คืออะไร แต่เป็นที่อยู่
pnum และตรงนี้เราสามารถบอกที่อยู่ของพอยน์เตอร์ได้
ดังนั้นเราจะบอกว่า p แล้วสิ่งที่เราต้องทำคือใส่ที่นี่
เราต้องใส่ที่อยู่ของตัวชี้ของเรา
ในที่นี้เราจะบอกว่า address ของ pnum
และนี่จะให้อะไรแก่เรา นี่จะให้ที่อยู่ของพอยน์เตอร์ ที่จัดสรรหน่วยความจำไว้
ไม่ใช่ค่าของค่าของตัวชี้
ค่าของพอยน์เตอร์จะเป็นแอดเดรสด้วย มันจะเป็นแอดเดรสของ num
ทีนี้ลองพิมพ์ num ออกมาก่อนด้วย ตรงนี้เราจะพิมพ์
num address คือ
และอีกครั้ง เราต้องการพิมพ์ที่อยู่ว่า เปอร์เซ็นต์ p
แล้วเราจะบอกที่อยู่ของเลขที่อยู่
และที่อยู่ของ num ก็ควรตรงกับค่าของ pnum ด้วย
ที่อยู่ของ pnum จะต่างกันเพราะนั่นคือตัวชี้ในหน่วยความจำ
เราจะพิมพ์ค่าของ pnum หรือผมควรบอกว่า
address ของ pnum
แล้วเราจะพิมพ์ค่าของ
pnum ด้วย
ตัวแปร และนี่จะเป็นแอดเดรสด้วย และนี่จะเป็นเพียง
pnum
และสิ่งสุดท้ายที่เราต้องการแสดงคือ
เราต้องการแสดงว่าค่าที่ pnum ชี้ไปคืออะไร
ดังนั้นค่าของสิ่งที่ pnum ชี้ไป
และนี่จะเป็นชนิดที่มันชี้ไปเป็นจำนวนเต็ม
นี่ก็คือเปอร์เซ็นต์ d
และเรามาเพิ่มการป้อนบรรทัดเพื่อให้เราอ่านได้
และสิ่งที่ชี้ให้เห็นถึงวิธีที่คุณได้รับค่านั้นจริงๆ คือตัวดำเนินการทางอ้อม
ดังนั้นคุณจึงทำเครื่องหมายดอกจันแล้วตามด้วยชื่อตัวชี้
และนั่นจะบอกคุณว่าค่าที่ชี้ไปซึ่งควรเป็น 150 คืออะไร
เพื่อย้ำตรงนี้ในบรรทัดที่ 11
เรากำลังพิมพ์ที่อยู่ของ num
มันจะเป็นจำนวนหนึ่งหรือเลขฐานสิบหก
จากนั้นในบรรทัดที่ 12 เรากำลังพิมพ์ที่อยู่ของ
pnum ซึ่งเพิ่งจัดสรรในบรรทัดที่เจ็ด
เพราะคุณต้องเก็บ pnum pointer ไว้ที่ใดที่หนึ่ง
จากนั้นเราพิมพ์ค่าของพอยน์เตอร์ซึ่งเป็นเพียงที่อยู่ของ num
และเมื่อเราพิมพ์ที่อยู่ของ pnum เราต้องใช้เครื่องหมายและ
จากนั้นเราพิมพ์ค่าของ pnum ที่ชี้ไปซึ่งกำลัง
dereference โดยใช้ตัวดำเนินการทางอ้อม
ตอนนี้ ไปข้างหน้า และสร้างสิ่งนี้
และเรียกใช้ และเราควรเห็นค่าเหล่านี้ทั้งหมด
ดังนั้น num address
ของตัวเลขนี้ในหน่วยความจำคือ 0060FF0C
ที่อยู่ของ pnum จะแตกต่างออกไป
0060FF08
ค่าของ pnum ซึ่งเป็นที่อยู่ของ num ควรตรงกับบรรทัดแรกและเท่ากับ
FFOC
แล้วค่าของ pnum ที่ชี้ไปคือ 150
ดังนั้นพอยน์เตอร์สามารถมีค่าได้สามค่า ที่อยู่ของมัน ค่าของตัวชี้ซึ่งเป็นที่อยู่อื่น
และค่าของสิ่งที่อยู่นั้นชี้ไป
และอีกครั้ง เครื่องหมายและจะให้ที่อยู่ในหน่วยความจำแก่คุณเสมอ
พนมมีที่อยู่ คุณสามารถพิมพ์ออกมาได้เพียงแค่พูดชื่อตัวชี้
จากนั้นเพื่อให้ได้ค่าที่มันชี้ไป คุณใช้ตัวดำเนินการทางอ้อม
เครื่องหมายดอกจัน แล้วค่านั้นก็จะให้ค่านั้นซึ่งก็คือ 150
นี่คือพื้นฐานของพอยน์เตอร์ ทำให้คุณคุ้นเคยกับไวยากรณ์
เมื่อใดควรใช้ที่อยู่ของตัวดำเนินการ และเมื่อใดควรใช้ตัวดำเนินการทางอ้อม
จากนั้นพยายามอธิบายเพียงแนวคิดของตัวชี้นี้ และวิธีที่ตัวชี้มีค่าของที่อยู่
ค่าของตัวชี้คือที่อยู่
ลองใช้สิ่งนี้ ทำความเข้าใจไวยากรณ์นี้
พอยน์เตอร์เป็นแนวคิดที่สำคัญจริงๆ ขอขอบคุณ.