ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
ความหมาย การประกาศ และการใช้
Pointer พอยน์เตอร์ ความหมาย การประกาศ และการใช้
2
พอยน์เตอร์ เป็นข้อมูลชนิดหนึ่ง ซึ่งหมายถึง ตำแหน่งหรือแอดเดรส ในหน่วยความจำ ใช้สำหรับเข้าถึงข้อมูลในหน่วยความจำโดยระบุตำแหน่งหรือแอดเดรสในหน่วยความจำ ค่าของข้อมูลชนิดนี้เป็นประเภท unsigned ขนาดของตัวแปรชนิดนี้จะขึ้นกับรูปแบบของหน่วยความจำ (memory model) 1 หน่วยข้อมูลชนิดนี้ หมายถึงขนาดของหน่วยความจำที่ใช้ในการบันทึกข้อมูลพื้นฐาน ซึ่งจะมีขนาดแตกต่างกันขึ้นกับชนิดข้อมูลพื้นฐานของตัวแปรพอยน์เตอร์
3
การประกาศ <ชนิดข้อมูล> * ตัวแปรพอยน์เตอร์; int i, j = 8, *p;
รูปแบบ <ชนิดข้อมูล> * ตัวแปรพอยน์เตอร์; <ชนิดข้อมูล> ตัวแปร, * ตัวแปรพอยน์เตอร์ = แอดเดรสของตัวแปร ; ตัวอย่าง int i, j = 8, *p; char c = ‘A’, *pa = &c; float x=1.5, *pf = &x; unsigned u = 32768; *pu = &u;
4
การกำหนดค่าตัวแปรพอยน์เตอร์
ค่าที่จะกำหนดให้กับตัวแปรพอยน์เตอร์ต้องเป็นแอดเดรสในหน่วยความจำที่เก็บข้อมูลซึ่งมีชนิดสอดคล้องกับที่ประกาศ ตัวอย่าง int i = 8, *p; i p p = 0; p = NULL; /* equivalent to p = 0 */ p = (int *) 1308; /* an absolute address in memory */ p = &i; 8 ? 8
5
ข้อมูลเกี่ยวกับตัวแปรพอยน์เตอร์
ค่าของตัวแปรพอยน์เตอร์ (เป็นแอดเดรสในหน่วยความจำ) ค่าข้อมูล ณ ตำแหน่งหรือแอดเดรสซึ่งเป็นค่าของตัวแปรพอยน์เตอร์ อ้างถึงหรือแสดงได้ รูปแบบ * ตัวแปรพอยน์เตอร์
6
ตัวอย่างการอ้างถึงหรือแสดงค่าตัวแปรพอยน์เตอร์
? x ? y ? p int x, y, *p; x = y = 10; p = &x; printf(“p = %u\t*p = %d\n”, p *p); *p = y + 18; printf(“x = %d\n”, x); p = &y; scanf(“%d”, p); 10 10 608 608 10 608 28 28 608 10
7
การประกาศตัวแปรและกำหนดค่าเริ่มต้น
แบบทดสอบความเข้าใจ การประกาศตัวแปรและกำหนดค่าเริ่มต้น int a=3, b=5, *p = &a, *q = &b, *r; double x; นิพจน์ นิพจน์เทียบเท่า ค่าของนิพจน์ p == &a p = a + 8 * * & p r = &x 8 * *p/*q + 8 *(r = &b) *= *p p == (&a) p = (a + 8) /* illegal */ ( * (&p) ) r = (&x) /* illegal */ (8 * (*p))/(*q)) *(r = &b) *= (*p)
8
<ชนิดข้อมูล> **ตัวแปร [= แอดเดรสของพอยน์เตอร์]
Pointer to pointer รูปแบบ <ชนิดข้อมูล> **ตัวแปร [= แอดเดรสของพอยน์เตอร์] int a, *pa = &a, **ppa = &pa; *pa = 8; /*equivalent to a = 8;*/ **ppa = *pa + 10; printf(“**ppa = %u\n”, **ppa); printf(“ *ppa = %u\n”, *ppa); printf(“ ppa = %u\n”, ppa); printf(“ pa = %u\n”, pa); printf(“*pa = %u\n”, *pa); pa ppa ? a 8 18 608
9
แบบฝึกหัด จงเขียนโปรแกรมทำการเลื่อนค่าของตัวแปรเดี่ยวอักขระ 3 ตัว โดยใช้ พอยน์เตอร์ จงเขียนโปรแกรมทำการ Zapping ข้อมูลที่ป้อน 1 บรรทัด โดยให้ตัด ช่องว่างออก และเปลี่ยนตัวอักษรแรกของคำที่ป้อนให้เป็นพิมพ์ใหญ่ เช่น ป้อนข้อมูลเป็น The final day is Sunday. ผลลัพธ์ที่ได้เป็น TheFinalDayIsSunday.
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.