Just another WordPress.com site

โครงสร้างข้อมูล struct เป็นการสร้างข้อมูลที่เราสามารถนำเอาข้อมูลชนิดต่างๆกันมารวมเข้าไว้ด้วยกันได้

รูปแบบของคำสั่งจะเป็นแบบนี้ครับ

struct ชื่อโครงสร้างข้อมูล

{

ข้อมูลประเภทต่างๆ

};

ตัวอย่างเช่นสมมติว่าผมต้องการสร้างโคร้างสร้างข้อมูลของนักเรียน ที่ประกอบด้วยชื่อนักเรียน และคะแนนของนักเรียน ผมอาจจะสร้างแบบนี้

ถ้าต้องการสร้างตัวแปรชื่อให้มีโครงสร้าง student เราจะประกาศแบบนี้ครับ

struct student ชื่อตัวแปร

ในการเรียกอ้างถึงตัวแปรภายในโครงสร้างเราจะใช้ “.” ในการอ้าง เช่นถ้าเราต้องการอ้างถึงตัวแปร name เราจะใช้เขียน  ชื่อตัวแปร.name ถ้าต้องการอ้างถึงตัวแปร score เราจะเขียน  ชื่อตัวแปร.score ดังตัวอย่างต่อไปนี้ครับ

เมื่อลองรันดูจะได้ผลลัพธ์ดังนี้ครับ

เราสามารถนำโครงสร้าง struct ไปประยุกต์ฝช้กับโครงสร้างอื่นๆได้ เช่น เราอาจนำมันไปใช้กับโครงสร้างดังตัวอย่างต่อไปนี้ครับ

สมมติว่าผมต้องการเก็บข้อมูลนักเรียน 3 คน ผมอาจจะเขียนโค้ดได้แบบนี้ครับ

เมื่อทำการรันดูจะได้ผลดังนี้ครับ

Tip ถ้าตอนที่เราสร้างโครงสร้าง student มีการประกาศคำสั่ง typedef หน้าชื่อโครงสร้าง จะทำให้เวลาที่ประกาศตัวแปร std นั้นไม่จำเป็นต้องมีคำว่า struct นำหน้าดังรูปครับ

เราสามารถนำโคร้างข้อมูล struct มาสร้างซ้อนโครงสร้าง struct เพื่อให้ได้โครงสร้างที่ใหญ่ขึ้นไปอีกก็ได้นะครับ ตัวอย่างเช่นสมมติว่าในโครงสร้าง student ผมต้องการสร้างข้อมูลเกี่ยวกับคะแนนการการบ้านเพิ่มเข้าไป โดยคะแนนการบ้านนั้นมีการเก็บคะแนนทั้งหมด 3 ครั้ง ผมอาจจะสร้างโครงสร้างข้อมูลได้ดังนี้ครับ

ในการอ้างอิงถึงตัวแปรในโครงสร้าง เราก็จะใช้ “.” ดังนี้ครับ

เมื่อทำการรันดู เราจะได้ผลลัพธ์ดังนี้ครับ

ในบางครั้งเราอาจจะต้องอ้างอิงค่าของข้อมูลในโครงสร้าง struct ผ่าน pointer ซึ่งเราสามารถทำได้โดยใช้ “->” ในการอ้างอิง เช่น ดังตัวอย่างนี้ครับ

ในตัวอย่างนี้ผมต้องการอ้างถึงข้อมูลใน std ผ่าน pointer p โดยข้อมูลที่ต้องการอ้างถึงคือ name และ score ซึ่งผมจะคำสั่ง p->name และ p->score ตามลำดับครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: