วันพุธที่ 17 กันยายน พ.ศ. 2557

06:59
8.9 สรุปท้ายบท
            ข้อมูลแบบโครงสร้าง  คือ  ข้อมูลชนิดหนึ่งที่เกิดจากการรวบรวมตัวแปรหลาย ๆ  ชนิดมาเก็บไว้ด้วยกัน  โดยเก็บไว้ภายใต้ชื่อโครงสร้าง  (structure  name)  เดียวกัน
            การประกาศข้อมูลแบบโครงสร้าง  (declaration  of  a  structure  data  type)
สามารถทำได้โดยคำสั่ง  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. member_name
            
            ข้อมูลชุดแบบโครงสร้าง  (arrays  of  structures)             บางครั้งเราอาจจะต้องการตัวแปรโครงสร้างจำนวนมากกว่า  1  ตัว  เราต้องการเก็บข้อมูลนักศึกษาจำนวน  10  คน  หรือข้อมูลหนังสือ  20  เล่ม  ก็สามารถใช้ความรู้เกี่ยวกับ  arrays  มาช่วยในการจัดการข้อมูลแบบโครงสร้างได้ดังนี้
            การประกาศข้อมูลชุดแบบโครงสร้าง
ใช้คำสั่ง  struct  มาช่วยในการประกาศข้อมูลชุดแบบโครงสร้างโดยมีรูปแบบดังนี้

รูปแบบที่  1 
struct  struct_name
{
      type1  name1;
      type2  name2;
      ……..
      typeN  nameN;
}  struct_var[n];
รูปแบบที่  2
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  ใช้เนื้อที่ภายในหน่วยความจำร่วมกัน                        
            ลักษณะเช่นนี้ต้องใช้ข้อมูลแบบยูเนียน เพราะตัวแปรต่างชนิดกันใช้เนื้อที่ภายในหน่วยความจำร่วมกัน ได้โดยใช้คำสั่งดังนี้

union   {
      int  a;
      float  b;
      char c;
}  ShareArea;
            การประกาศข้อมูลแบบยูเนียน  (declaration  of  an  unions  data  type)
สามารถทำได้โดยใช้คำสั่ง   union  มาช่วยในการประกาศข้อมูลแบบยูเนียน  โดยมีรูปแบบการประกาศดังนี้
 รูปแบบที่  1
union      union_name
{
      type1 name1;
      type2 name2;
      ………
      typeN nameN;
}  union_var;
รูปแบบที่  2                                                                                                                                                               
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.member_name

0 ความคิดเห็น:

แสดงความคิดเห็น