สถิติการเข้าชม

วันอังคารที่ 14 กรกฎาคม พ.ศ. 2552

DTS 03-01/07/52

สรุป
Pointer เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่ง
ที่อยู่ (Address) ของตัวแปรที่อยู่ในหน่วยความจำการประกาศ
ชนิดของตัวแปรพอยน์เตอร์

รูปแบบ
type *variable-nametype
หมายถึง ชนิดของตัวแปร*
หมายถึง เป็นเครื่องหมายที่แสดงว่าตัวแปรที่ตามหลัง
เครื่องหมายนี้เป็นตัวแปรพอยน์เตอร์variable-name
เป็นชื่อของตัวแปรที่ต้องการประกาศว่าเป็นชนิดพอยน์เตอร์

ตัวอย่าง
char *prt; หมายความว่า ประกาศว่าตัวแปร prt เป็นตัวแปร
พอยน์เตอร์ที่ใช้เก็บตำแหน่งเริ่มต้นที่จะเก็บ characterint
int*a; หมายความว่า ประกาศว่าตัวแปร a เป็นตัวแปรพอยน์เตอร์
ที่ใช้เก็บตำแหน่งเริ่มต้น

เครื่องหมายที่ใช้ทำงานกับตัวแปรพอยน์เตอร์
1. เครื่องหมาย & เป็นเครื่องหมายที่ใช้เมื่อต้องการให้เอา
ค่าตำแหน่งที่อยู่ของตัวแปรที่เก็บไว้ในหน่วยความจำออกมาใช้
2. เครื่องหมาย *มีการใช้งาน 2 ลักษณะ คือ
1) ใช้ในการประกาศparameter ว่าเป็นตัวแปรแบบพอยน์เตอร์
2) ใช้เป็น dereferencing operator จะใช้เมื่อต้องการนำ
ค่าที่อยู่ในตำแหน่งที่ตัวแปรพอยน์เตอร์นั้นชี้อยู่ออกมาแสดง

แบบฝึกหัด

1.ให้นักศึกษากำหนดค่าของ Array 1 มิติ และ Array 2 มิติ
ตอบ= Array 1 มิติ คือ float score[4];
และ Array 2 มิติ คือ int student[4][5];

2.ให้นักศึกษาหาค่าของ A[2] , A[6]จากค่าA={2,8,16,24,9,7,3,8,}
ตอบ= A[2] คือ 16 และ A[6] คือ 3

3.จากค่าของ int a [2][3] = {{6,5,4},{3,2,1}};ให้นักศึกษาหาค่าของ
a[1][0]และa[0][2]
ตอบ= a[1][0] คือ 3 และ a[0][2] คือ 4

4.ให้นักศึกษากำหนด structure ที่มีค่าของข้อมูลจากน้อย 6 Records
ตอบ=
struct student
{
char number[10];
char name[20];
char lastname[20];
int age;
float score;
float grade;
}stud;

5. ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวชนิด Array
กับตัวแปร Pointerในสภาพของการกำหนดที่อยู่ของข้อมูล
ตอบ=
array หมายถึง ตัวแปรชุดที่ใช้เก็บตัวแปรชนิดเดียวกันไว้ด้วยกัน
เช่น เก็บข้อมูล charไว้กับ char เก็บ int ไว้กับ int ไม่สามารถเก็บข้อมูล
ต่างชนิดกันได้เช่น char กับ int เรียก array อีกอย่างว่าหน่วยความจำแบ่ง
เป็นช่องการกำหนดสมาชิกของ array จะเขียนภายในเครื่องหมาย [ ]

pointer หมายถึง ตัวเก็บตำแหน่งที่อยู่ของหน่วยความจำ (Address)
หรือเรียกว่า ตัวชี้ตำแหน่งที่อยู่ สัญลักษณ์ของ pointer จะแทนด้วยเครื่องหมาย *