23 พฤษภาคม 2551

ตัวแปร pointer [ตัวชี้มหัศจรรย์]

ตัวแปร pointer [ตัวชี้มหัศจรรย์]

อ่านง่ายๆที่ google doc http://docs.google.com/Doc?id=dcntsjcf_6cck233

เห็นช่วงนี้น้องๆ แต่ละคนก็ถามมามากเหลือเกินเกี่ยวกับตัวแปรชนิดนี้
ส่วนใหญ่น่าเป็นแบบบ่นๆมากกว่านะว่าเรียนไม่รู้เรื่อง เลยตั้งใจจะเขียนอธิบาย
แต่ไม่แน่ใจว่าจะทำให้งงมากกว่าเดิมหรือเปล่านะ

ตัวแปร แบบ pointer คือตัวแปลที่เก็บ address <---เห็นมั้ยนิยามมีนิดเดียวเอง
เช่น
int *pint;
ก็จะได้ตัวแปล pointer ชื่อว่า pint ที่เก็บ addressของตัวแปลชนิด int นั่นเอง

operater ที่ใช้กับตัวแปร pointer
มีอยู่สองตัวด้วยกันคือ
1.วิธีการเอา address ของตัวแปลอื่นมาให้เจ้า pint
pint = &a;

เป็นการเก็บ address ของ a ไว้ที่ pint
ตัวเลขที่อยู่ใน pint เนี่ยจะเป็นไปตามแต่ละครั้งที่ รันโปรแกรมนะไม่แน่นอน
ถ้าอยากรู้ก็ลอง print ออกมาดูได้ครับ
printf("%x",pint);
2.วิธีดำเนินการกับข้อมูลใน address ที่ชี้อยู่
pint =&a; เก็บ address ของ a ไว้ที่ pint
*pint= 5; เอาค่า 5 ไปใส่ใน address ของ a
จากคำสั่งข้างบนจะทำให้ตัวแปร a เนี่ยมีึค่าเท่ากับ 5

เอาหละวันนี้เอาไว้แค่นี้ก่อนวันหลังจะเอาโจทย์มาฝาก เพราุะรู้ว่า นี่คือสิ่งที่ทุกคนรู้อยู่แล้วแต่
ที่งง คือ แล้วจะทำยังไงกับโจทย์ยากๆมากกว่าใช่มัย อดใจรออีกไม่นานนะครับ

ไม่มีความคิดเห็น: