วันจันทร์ที่ 13 กุมภาพันธ์ พ.ศ. 2560

สรุปท้ายบทที่8 การสร้างฟังก์ชันและตัวแปรชนิดพอยน์เตอร์

สรุปท้ายบทที่8 การสร้างฟังก์ชันและตัวแปรชนิดพอยน์เตอร์

การเขียนโปรแกรมในภาษาซ จำเป็นต้องแบ่งโปรแกรมออกเป็น ฟังก์ชันย่อยๆ ก็เพราะ

1. เพื่อเป็นไปตามหลักการของโปรแกรมเซิงโครงสร้าง
2. เพื่อง่ายต่อการตรวจสอบ  และการบำรุงรักษา
3. เพื่อหลีกเลี่ยงการเขียนชุดคำสั่งเดิม  ที่ทำงานซ้ำๆ
4. เพื่อสร้างกลุ่มคำสั่งประมวลผลเฉพาะงาน



    ฟังก์ชัน มีความแตกต่างกับ โพรซีเยอร์ คือ ฟังก์ชันจะต้องมีการคืนค่ากลับเสมอ โดยชนิดข้อมูลที่คืนกลับค่ากลับไป  อาจมีชนิดข้อมูลประเภท int,float หรือ char เป้นต้น
    ปกติชนิดข้อมูลที่คืนค่ากลับไปยังฟังก์ชัน main() คือเลขจำนวนเต็ม หรือ int 
    การเข้าถึงฟังก์ชัน โดยปกติจะมีอยู่ . รูปแบบด้วยกันคือ
1. ฟังก์ชันที่ไม่มีการส่งผ่านค่าใดๆ ลงไป
2. ฟังก์ชันที่มีการส่งผ่านค่ามางเดียว
3. ฟังก์ชันส่งผ่านค่าไปและคือค่ากลับมา

    กรณีที่โปรแกรมได้นำฟังก์ชันที่สร้างขึ้นเอง  อยู่ถัดจากฟังก์ชัน  main() จำเป็นต้องประกาศฟังก์ชันต้นแบบที่ต้นโปรแกรมด้วย       

ตัวแปรพอยน์เตอร์ (Pointer) คือ เป็นตัวแปรพิเศษในภาษา C มีหน้าที่เก็บค่าต าแหน่งที่อยู่หรือเรียกว่า address ในหน ่ วยความจา ของตว ั แปรอน่ื ท่สี รา ้ งข ้ ึ นในโปรแกรม สว ่ นใหญ ่ ใช้ในกรณีที่ต้องเขียนโปรแกรมควบคุมการท างานของอุปกรณ์ประเภทไอซี (Integrated Circuit) หรือคอนโทรลเลอร์ (Controller) ซึ่งเราสามารถ เขา ้ ถง ึ ตว ั แปรไดโ้ ดยตรงดว ้ ยการใชต ้ ว ั แปรพอยน ์ เตอรช ์้ ีไปท่ต ี า แหน ่ ง หน ่ วยความจา น ้ น ั การใชพ ้ อยน ์ เตอรจ ์ ะใชก ้ บ ั การเข ี ยน-อ่านข้อมูลจ านวน มาก อาร์เรย์ขนาดใหญ่หรือการท างานกับไฟล์ ซึ่งมีความรวดเร็วในการ เข้าถึงข้อมูลที่อยู่ติดๆ กันได้อย่างรวดเร็วกว่าการใช้ตัวแปร

ตัวแปรพอยเตอร์ (Pointers)





Pointer คือตัวแปรดัชนีที่ เก็บค่าตำแหน่งแอดเดรสของหน่วยความจำ ซึ่งตัวแปรพอยเตอร์นั้น จะมีเครื่องหมายดอกจันทร์ (*) นำหน้าเสมอ ดังตัวอย่างต่อไปนี้
int *Num;
float *GreatNum;
char *Name;
ตัวแปรพอยเตอร์มีประโยชน์ในการลดปริมาณหน่วยความจำที่ต้องใช้ในการเขียนโปรแกรม โดยการส่งข้อมูลในรูปพอยเตอร์ เข้าไปในฟังก์ชันที่โปรแกรมเรียกพร้อมกันหลายฟังก์ชัน แทนการส่งข้อมูลในรูปตัวแปรธรรมดา ซึ่งต้องใช้ตัวแปรหลายตัว
ตัวแปรพอยเตอร์มีลักษณะคล้ายตัวแปรตารางอาเรย์ แต่ที่แตกต่างกันคือ ตัวแปรตารางอาเรย์จะเก็บเฉพาะค่าต่างๆ ที่เป็นชนิดกันเดียวกับตัวแปรอาเรย์แต่ ตัวแปรพอยเตอร์จะเก็บเฉพาะค่าตำแหน่ง Address ตัวแปรเท่านั้น โดยไม่ได้มีการจัดเตรียมหน่วยความจำแบบไดนามิกส์ (Dynamic Memory Allocation) ไว้
การเข้าถึงตำแหน่งแอดเดรสทำได้โดย ใช้เครื่องหมายแอมเปอร์แซนด์ (&) ซึ่งจะแสดงให้เห็นดังตัวอย่างต่อไปนี้ ในที่นี้กำหนดให้ตัวแปร Andy อยู่ในตำแหน่ง Address ที่ 1776 ดังตังอย่างในภาพที่ 



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

แสดงความคิดเห็น