ข้อมูลแบบโครงสร้าง คือ ข้อมูลชนิดหนึ่งที่เกิดจากการรวบรวมตัวแปรหลาย ๆ ชนิดมาเก็บไว้ด้วยกัน โดยเก็บไว้ภายใต้ชื่อโครงสร้าง (structure name) เดียวกัน
การประกาศข้อมูลแบบโครงสร้าง (declaration of a structure data type)
สามารถทำได้โดยคำสั่ง struct มาช่วยในการประกาศข้อมูลแบบโครงสร้าง โดยมีรูปแบบการประกาศดังนี้
สามารถทำได้โดยคำสั่ง struct มาช่วยในการประกาศข้อมูลแบบโครงสร้าง โดยมีรูปแบบการประกาศดังนี้
รูปแบบที่ 1
struct struct_name
{
type1 name1;
type2 name2;
……..
typeN nameN;
} struct_var;
รูปแบบที่ 2
struct struct_name
{
type1 name1;
type2 name2;
……..
typeN nameN;
} ;
struct struct_name struct_var;
โดยที่
struct เป็นคำสั่งที่ใช้ประกาศข้อมูลแบบโครงสร้าง
struct_name เป็นชื่อข้อมูลแบบโครงสร้าง ใช้สำหรับประกาศข้อมูลแบบโครงสร้างกลุ่มอื่นให้มีโครงสร้างเหมือนกลุ่มโครงสร้างที่เคยประกาศไว้แล้ว
struct_var เป็นชื่อตัวแปรโครงสร้างใช้สำหรับอ้างอิงข้อมูลภายในโครงสร้าง
type1 name1, type2 name2,…,typeN nameN เป็นชนิด และชื่อตัวแปรที่ 1, 2, 3, … , N ตามลำดับ บางครั้งอาจจะเรียก name1, name2,…,nameN ว่า element 1, element 2, … , element N ตามลำดับ
การอ้างอิงตัวแปรภายในข้อมูลแบบโครงสร้าง (accessing structure members)
การอ้างอิงสมาชิกหรือตัวแปรภายในข้อมูลแบบโครงสร้าง สามารถทำได้โดยเรียกชื่อตัวแปรโครงสร้าง (struct_var) ตามด้วยเครื่องหมาย . (period) จากนั้นก็ตามด้วยชื่อตัวแปรภายในโครงสร้าง (element_name) หรือบางครั้งเรียกว่า member_name
รูปแบบการอ้างอิงตัวแปรภายในโครงสร้าง
การอ้างอิงสมาชิกหรือตัวแปรภายในข้อมูลแบบโครงสร้าง สามารถทำได้โดยเรียกชื่อตัวแปรโครงสร้าง (struct_var) ตามด้วยเครื่องหมาย . (period) จากนั้นก็ตามด้วยชื่อตัวแปรภายในโครงสร้าง (element_name) หรือบางครั้งเรียกว่า member_name
รูปแบบการอ้างอิงตัวแปรภายในโครงสร้าง
struct_var. member_name
ข้อมูลชุดแบบโครงสร้าง (arrays of structures) บางครั้งเราอาจจะต้องการตัวแปรโครงสร้างจำนวนมากกว่า 1 ตัว เราต้องการเก็บข้อมูลนักศึกษาจำนวน 10 คน หรือข้อมูลหนังสือ 20 เล่ม ก็สามารถใช้ความรู้เกี่ยวกับ arrays มาช่วยในการจัดการข้อมูลแบบโครงสร้างได้ดังนี้
การประกาศข้อมูลชุดแบบโครงสร้าง
ใช้คำสั่ง struct มาช่วยในการประกาศข้อมูลชุดแบบโครงสร้างโดยมีรูปแบบดังนี้
ใช้คำสั่ง struct มาช่วยในการประกาศข้อมูลชุดแบบโครงสร้างโดยมีรูปแบบดังนี้
รูปแบบที่ 1
struct struct_name
{
type1 name1;
type2 name2;
……..
typeN nameN;
} struct_var[n];
struct struct_name
{
type1 name1;
type2 name2;
……..
typeN nameN;
};
struct struct_name struct_var[n];
โดยที่
struct เป็นคำสั่งที่ใช้ประกาศข้อมูลแบบโครงสร้าง
struct_name เป็นชื่อข้อมูลแบบโครงสร้าง ใช้สำหรับประกาศข้อมูลแบบโครงสร้างกลุ่มอื่นให้มีโครงสร้างเหมือนกลุ่มโครงสร้างที่เคยประกาศไว้แล้ว
struct_var เป็นชื่อตัวแปรโครงสร้างใช้สำหรับอ้างอิงข้อมูลภายใน โครงสร้าง
type1 name1, type2 name2, …., typeN nameN เป็นชนิดและชื่อตัวแปรตัวที่ 1, 2, 3, …, N ตามลำดับ บางครั้งอาจจะเรียก name1, name2, … nameN ว่า element 1 , element 2, … element N ตามลำดับ
n คือ ขนาดของตัวแปรชุดแบบโครงสร้าง มีค่าเริ่มต้นที่ 0,1, 2, …, n-1
การอ้างอิงตัวแปรที่อยู่ภายในข้อมูลชุดแบบโครงสร้าง
รูปแบบการอ้างอิงโดยไม่มีการกำหนดค่าให้ตัวแปร
struct_var[n].member_var
โดยที่
n คือขนาดของตัวแปรชุดแบบโครงสร้าง มีค่าตั้งแต่ 0,1, 2, …,n-1
พอยน์เตอร์กับข้อมูลแบบโครงสร้าง (pointer and structures) เรื่องนี้จะมีประโยชน์มากเมื่อต้องการทำโครงสร้างข้อมูลแบบ linked list และ tree แบบต่าง ๆ การใช้พอยน์เตอร์อ้างอิงตัวแปรภายในข้อมูลแบบโครงสร้าง สามารถทำได้ดังนี้
รูปแบบการใช้พอยน์เตอร์อ้างอิงตัวแปรภายในข้อมูลแบบโครงสร้าง
(*ptr_name).member_var
หรือ
ptr_name->member_var
ข้อมูลแบบยูเนียน (unions)
ความหมายและลักษณะของข้อมูลแบบยูเนียน
ยูเนียน คือ ข้อมูลแบบหนึ่งที่สามารถกำหนดให้ตัวแปรต่างชนิดกัน ใช้เนื้อที่ในหน่วยความจำของเครื่องร่วมกันได้ ทำให้การใช้เนื้อที่ภายในหน่วยความจำลดลง
เช่น สมมติว่าเรามีตัวแปรอยู่ 3 ตัว คือตัวแปร a, b และ c ตามลำดับ โดยที่ตัวแปร a เป็นชนิด integer, ตัวแปร b เป็นชนิด floating point และตัวแปร c เป็นชนิด single character และเราต้องการให้ตัวแปร a, b และ c ใช้เนื้อที่ภายในหน่วยความจำร่วมกัน
เช่น สมมติว่าเรามีตัวแปรอยู่ 3 ตัว คือตัวแปร a, b และ c ตามลำดับ โดยที่ตัวแปร a เป็นชนิด integer, ตัวแปร b เป็นชนิด floating point และตัวแปร c เป็นชนิด single character และเราต้องการให้ตัวแปร a, b และ c ใช้เนื้อที่ภายในหน่วยความจำร่วมกัน
ลักษณะเช่นนี้ต้องใช้ข้อมูลแบบยูเนียน เพราะตัวแปรต่างชนิดกันใช้เนื้อที่ภายในหน่วยความจำร่วมกัน ได้โดยใช้คำสั่งดังนี้
union {
int a;
float b;
char c;
} ShareArea;
การประกาศข้อมูลแบบยูเนียน (declaration of an unions data type)
สามารถทำได้โดยใช้คำสั่ง union มาช่วยในการประกาศข้อมูลแบบยูเนียน โดยมีรูปแบบการประกาศดังนี้
สามารถทำได้โดยใช้คำสั่ง union มาช่วยในการประกาศข้อมูลแบบยูเนียน โดยมีรูปแบบการประกาศดังนี้
รูปแบบที่ 1
union union_name
{
type1 name1;
type2 name2;
………
typeN nameN;
} union_var;
union union_name
{
type1 name1;
type2 name2;
………
typeN nameN;
};
union union_name union_var;
โดยที่
union เป็นคำสั่งที่ใช้ประกาศข้อมูลแบบยูเนียน
union_name เป็นชื่อข้อมูลแบบยูเนียน ใช้สำหรับการประกาศข้อมูลแบบยูเนียนกลุ่มอื่นให้มีโครงสร้างเหมือนกลุ่มยูเนียนที่เคยประกาศไว้แล้ว
union_var เป็นชื่อตัวแปรยูเนียนใช้สำหรับการอ้างอิงภายในยูเนียน
type1 name1, type2 name2,…, typeN nameN เป็นชนิดและชื่อตัวแปรตัวที่ 1, 2, 3, …, N ตามลำดับ บางครั้งอาจจะเรียก name1, name2,…, nameN ว่า element 1, element2, …, element N ตามลำดับ
การอ้างอิงตัวแปรภายในข้อมูลแบบยูเนียน (accessing union members)
การอ้างอิงสมาชิกหรือตัวแปรภายในข้อมูลแบบยูเนียน สามารถทำได้โดยเรียกชื่อตัวแปรยูเนียน (union_var) ตามด้วยเครื่องหมาย . (period) จากนั้นก็ตามด้วยชื่อตัวแปรภายในยูเนียน (element_name หรือ member_name) ซึ่งมีลักษณะการอ้างอิงทำนองเดียวกันกับข้อมูลแบบโครงสร้าง
การอ้างอิงสมาชิกหรือตัวแปรภายในข้อมูลแบบยูเนียน สามารถทำได้โดยเรียกชื่อตัวแปรยูเนียน (union_var) ตามด้วยเครื่องหมาย . (period) จากนั้นก็ตามด้วยชื่อตัวแปรภายในยูเนียน (element_name หรือ member_name) ซึ่งมีลักษณะการอ้างอิงทำนองเดียวกันกับข้อมูลแบบโครงสร้าง
รูปแบบการอ้างอิงตัวแปรภายในยูเนียน
union_var.member_name
0 ความคิดเห็น:
แสดงความคิดเห็น