2011/10/03

C++ - Data Structures

เรารู้จักกลุ่มของข้อมูลชนิดเดียวกันมาแล้ว เรียกว่า 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

1 comment:

  1. ขอบคุณครับ มีประโยชน์มากเลยครับ

    ReplyDelete