เรารู้จักกลุ่มของข้อมูลชนิดเดียวกันมาแล้ว เรียกว่า array
คราวนี้ผมจะแนะนำให้รู้จักกลุ่มของข้อมูลต่างชนิดกัน ที่เรียกว่า Data Structure
Data Structure คือ กลุ่มของข้อมูลต่างชนิดกันเอามารวมไว้ด้วยกันและตั้งชื่อเพื่อใช้เรียก
ไวยากรณ์
struct structure_name {
type_1 member_1;
type_2 member_2;
...
type_n member_n;
};
ตัวอย่าง
struct human {
char name[255];
int age;
};
เวลาประกาศตัวแปรก็ประกาศเหมือนตัวแปรแบบปกติ
human a;
เวลาเรียกใช้เราจะใช้ . (จุด) เพื่อบอกข้อมูล member ของ structure นั้น
เช่น ถ้าเราจะเข้าถึงข้อมูลที่ชื่อ name ใน a เราจะใช้ a.name
a.name = "Name";
a.age = 5;
แล้วถ้าต้องการตัวแปร human หลาย ๆ ตัว เราก็สามารถสร้างเป็น array ได้
human b[20];
คือการประกาศตัวแปร array ของ human 20 ตัว
เมื่อเราสร้างตัวแปร structure ที่เป็น pointer
human *c = new human;
แล้วถ้าเราต้องการจะเข้าถึง member ของ c จะต้องเขียนยังไง ?
c.age = 5;
หรือ
*c.age = 5;
ทั้งสองแบบข้างบนเป็นวิธีที่ผิด
เราจะต้องนำค่าของ c ออกมาก่อนโดยการใช้ *c แล้วค่อยเข้าถึง member เราจึงต้องใส่ ( ) ครอบ *c
(*c).age = 5;
แต่ถ้าจะพิมพ์วงเล็บ แล้วใส่ * อีก ทำให้เสียเวลาพิมพ์มาก จึงมีสัญลักษณ์ตัวหนึ่งที่ใช้ลดรูป (*_) คือ ->
เราจึงสามารถเปลี่ยนได้เป็น
c->age = 5;
นอกจากนี้เรายังสามารถประกาศตัวแปรหลังจากประกาศ structure ได้เลย โดยการเขียนชื่อตัวแปรต่อท้ายก่อนเครื่องหมาย ;
struct human {
char name[255];
int age;
} a, b, c;
คือการประกาศตัวแปร a, b, c เป็น human
ขอบคุณครับ มีประโยชน์มากเลยครับ
ReplyDelete