DTS: 03-01-07-2552
เรื่อง Pointer
Pointer เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งที่อยู่ (Address)
ของตัวแปรที่อยู่ในหน่วยความจำ
การประกาศชนิดของตัวแปรพอยน์เตอร์
รูปแบบ
type *variable-name
type หมายถึง ชนิดของตัวแปร
* หมายถึง เป็นเครื่องหมายที่แสดงว่า ตัวแปรที่ตามหลังเครื่องหมายนี้เป็น ตัวแปรพอยน์เตอร์
variable-name เป็นชื่อของตัวแปรที่ต้องการประกาศว่าเป็นชนิดพอยน์เตอร์
ตัวอย่าง
char *prt หมายความว่า ประกาศว่าตัวแปร prt เป็นตัวแปรพอยน์เตอร์
ที่ใช้เก็บตำแหน่งเริ่มต้นที่จะเก็บ char
เครื่องหมายที่ใช้ทำงานกับตัวแปรพอยน์เตอร์
1. เครื่องหมาย & เป็นเครื่องหมายที่ใช้เมื่อต้องการให้เอาค่าตำแหน่งที่อยู่ของตัวแปรที่เก็บไว้ในหน่วยความจำออกมาใช้
2. เครื่องหมาย * มีการใช้งาน 2 ลักษณะ คือ
- ใช้ในการประกาศ parameter ว่าเป็นตัวแปรแบบพอยน์เตอร์
- ใช้เป็น dereferencing operator จะใช้เมื่อต้องการนำค่าที่อยู่ในตำแหน่งที่ตัวแปรพอยน์เตอร์นั้นชี้อยู่ออกมาแสดง
เรื่อง Set and String
โครงสร้างข้อมูลแบบเซ็ต
เป็นโครงสร้างข้อมูลที่ข้อมูลแต่ละตัวไม่มี ความสัมพันธ์กัน ในภาษาซี จะไม่มีประเภทข้อมูลแบบเซ็ตนี้เหมือนกับในภาษา ปาสคาล แต่สามารถใช้หลักการของการดำเนินงาน แบบเซ็ตมาใช้ได้ตัวดำเนินการของเซ็ต (Set operators) ประกอบด้วย
- set intersection
- set union
- set difference เป็นต้น
โครงสร้างข้อมูลแบบสตริง
สตริง (String) หรือ สตริงของอักขระ (Character String) เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร ตัวเลขหรือ เครื่องหมายเรียงติดต่อกันไป รวมทั้งช่องว่าง
สตริงกับอะเรย์
สตริง คือ อะเรย์ของอักขระ
เช่น char a[6] อาจจะเป็นอะเรย์ขนาด 6 ช่องอักขระ หรือ เป็นสตริงขนาด 5 อักขระก็ได้ โดยจุดสิ้นสุดของ string จะจบด้วย \0 หรือ null character
เช่น
char a[ ]={‘H’, ‘E’, ‘L’, ‘L’, ‘O’, ‘\0’};
char a[ ]=“HELLO”;
การกำหนดสตริง
การกำหนดสตริงทำได้หลายแบบ คือ
1. กำหนดเป็นสตริงที่มีค่าคงตัว (String Constants)
2. กำหนดโดยใช้ตัวแปรอะเรย์หรือพอยเตอร์
การกำหนดค่าคงตัวสตริง
สามารถกำหนดได้ทั้งนอกและในฟังก์ชัน เมื่อกำหนดไว้นอก ฟังก์ชัน ชื่อค่าคงตัวจะเป็นพอยเตอร์ชี้ไปยังหน่วยความจำที่เก็บสตริง
นั้น เมื่อกำหนดไว้ในฟังก์ชัน จะเป็นพอยเตอร์ไปยังหน่วยความจำที่ เก็บตัวมันเอง การกำหนดค่าให้กับสตริงนั้น
เราจะใช้เครื่องหมายdouble quote (“ ”) เช่น “abc”
คือ ชุดของอักขระที่มีขนาด 4 (รวม \0 ด้วย)
Example
#define NME “Semi”
main ( ){
char *cpntr;
cpntr=NME;
printf(“con\n”);
printf(“%s, %u, %c\n”, “con”, “duc”,*“tor”);
printf(““%s, %u, %c\n”, NME, NME,*NME);
printf(““%s, %u, %c\n”, cpntr, cpntr,*cpntr);
}
ผลการรันโปรแกรม
con
con, 37, t
Semi, 16, S
Semi, 16, S
ไม่มีความคิดเห็น:
แสดงความคิดเห็น