พอยน์เตอร์ (Pointer) Chapter 6 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ เป็นตัวแปรชนิดหนึ่ง ที่ทำหน้าที่ในการเก็บตำแหน่งที่อยู่ (Address) ของตัวแปรหรือข้อมูลที่มีอยู่ในหน่วยความจำ โดยที่ตัวมันเองไม่ได้เก็บข้อ มูลเพียงแต่ชี้ไปยังที่เก็บข้อมูลอีกทีหนึ่ง ทำให้การทำงานของโปรแกรม กระชับขึ้น 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ การประกาศตัวแปรพอยน์เตอร์ รูปแบบ Type *variablename * = เป็นเครื่องหมายที่กำหนดว่าเป็นตัวแปรพอยน์เตอร์ variablename = ชื่อตัวแปร Example int *ptr; char *pt; float *ft; 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ เครื่องหมายที่ใช้กับพอยน์เตอร์ - เครื่องหมาย & ใช้สำหรับกำหนดค่าเริ่มต้นให้กับพอยน์เตอร์ โดยการนำเอาตำแหน่งที่อยู่ (Address) ของตัวแปรในหน่วยความจำมาใช้งาน - เครื่องหมาย * ใช้สำหรับนำเอาข้อมูลในตำแหน่งที่ตัวแปรพอยน์เตอร์นั้นชี้อยู่ ออกมาใช้งาน 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ เครื่องหมายที่ใช้กับพอยน์เตอร์ Example int a, *b; a=10; printf(“a = %d”,*b); 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ คณิตศาสตร์ของพอยน์เตอร์ ตัวแปรพอยน์เตอร์สามารถใช้เครื่องหมายทางคณิตศาสตร์มากระทำได้เช่นเดียวกับตัวแปรทั่ว ๆไป แต่ไม่สามารถใช้ได้ทั้งหมด เครื่องหมายทางคณิตศาสตร์ที่ใช้ได้ คือ 1. เครื่องหมาย + คือ การบวก 2. เครื่องหมาย - คือ การลบ 3. เครื่องหมาย ++ คือ การเพิ่มค่าครั้งละ 1 4. เครื่องหมาย -- คือ การลดค่าครั้งละ 1 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ คณิตศาสตร์ของพอยน์เตอร์ Example p++; p--; p = p + 2; หมายเหตุ การเพิ่มหรือลดค่าของพอยน์เตอร์จะขึ้นอยู่กับชนิดของตัวแปร นั้น ๆ ด้วย 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ เครื่องหมายเปรียบเทียบของพอยน์เตอร์ >, < มากกว่า , น้อยกว่า >=,<= มากกว่าหรือเท่ากับ , น้อยกว่าหรือเท่ากับ = = , != เท่ากับ , ไม่เท่ากับ 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ พอยน์เตอร์และอาร์เรย์ พอยน์เตอร์และอาร์เรย์มีความสัมพันธ์กันอย่างมาก สามารถใช้งานแทนกันได้ ข้อดีของพอยน์เตอร์ คือ การใช้งานเร็วกว่าและไม่เปลืองเนื้อที่ ข้อเสียของพอยน์เตอร์ คือ เข้าใจยากกว่า 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ พอยน์เตอร์และอาร์เรย์ 1 มิติ Example int x[5]={1,2,3,4,5}; int *px; px = x; *px = *(px+1) + (*(px+2)); printf(“%d + %d = %d”,*(px+1),*(px+2),*px); 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ พอยน์เตอร์และอาร์เรย์หลายมิติ การเก็บข้อมูลในหน่วยความจำของตัวแปร Array หลายมิติจะเรียงลำดับเช่นเดียวกับ Array มิติเดียว เพียงแต่ตำแหน่งที่อยู่จะประกอบด้วยตัวเลข 2 หลักหรือมากกว่า ดังนั้นการใช้งานพอยน์เตอร์ก็สามารถใช้ได้ โดยการใช้ตัวเลข 2 หลักหรือมากกว่า กำหนดตำแหน่งเช่นเดียวกัน 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ พอยน์เตอร์และอาร์เรย์หลายมิติ Example int x[2][3]={1,2,3, 4,5,6}; *(*(x+1)+0) = *(*(x+1)+1) + (*(*(x+1)+2)); printf(“%d + %d = %d”,*(*(x+1)+1),*(*(x+1)+2), *(*(x+1)+0)); 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ พอยน์เตอร์และสตริง สตริงเป็น Array ที่เก็บตัวอักษรเรียงต่อ ๆ กันไป และปิดท้ายด้วย “\0” เพื่อแสดงการสิ้นสุดของข้อความ ดังนั้นจึงสามารถประกาศตัวแปรเป็นPointer เพื่อเก็บข้อความในลักษณะเดียวกับ Array ได้เช่นกัน รูปแบบ char *ch; สามารถใช้งานได้เหมือนกับ Array ทั่วไป 231402 Introduction to Programming Department of Computer Business
พอยน์เตอร์ พอยน์เตอร์และสตริง Example char *ch; ch=“Computer”; printf(“ch = %s”,ch); 231402 Introduction to Programming Department of Computer Business