พอยเตอร์นอกจากสามารถชี้ไปยังเซลล์ที่เก็บข้อมูลชนิดพื้นฐานแล้ว ก็ยังสามารถชี้ไปยังเซลล์ที่เก็บข้อมูลชนิดโครงสร้าง หรือแม้แต่ชี้ไปยังเซลล์ที่เก็บพอยเตอร์อีกก็ได้ แต่ที่นำมาประยุกต์ใช้ในโปรแกรมทั่วไป มักมีลักษณะของพอยเตอร์ที่ชี้ไปยังเซลล์ที่เก็บโครงสร้างและโครงสร้างที่ใช้โดยปกติแล้วจะมีฟิลด์อย่างน้อย 1 ฟิลด์ เพื่อเก็บพอยเตอร์ที่ชี้ไปยังโครงสร้างอื่น
วิธีประกาศ
รูปแบบ
|
Typedef struct ชื่อโครงสร้าง {
ชนิดข้อมูล-1 ตัวแปร-1 ; ชนิดข้อมูล-2 ตัวแปร-2 ; ชนิดข้อมูล-3 ตัวแปร-3 ; . . . structชื่อโครงสร้าง * ตัวแปลชนิดพอยเตอร์ ; } ชื่อ typedef ; ชื่อ typedef * ตัวแปลชนิดพอยเตอร์ ;
|
ตัวอย่าง การประกาศตัวแปรชนิดพอยเตอร์ที่ชี้ไปยังโครงสร้างที่ประกอบด้วยฟิลด์ย่อย
#define STRING25 25
typedef struct ptr
{
int id;
char name [STRING25];
#define STRING25 25
typedef struct ptr
{
int id;
char name [STRING25];
char sex ;
int age;
struct ptr * next;
} Ptr;
Ptr *star, *last;
แสดงว่าได้ประกาศให้ตัวแปร start กับ last เป็นชนิดพอยเตอร์ที่ชี้ไปยังเซลล์ซึ่งเก็บข้อมูลชนิดโครงสร้าง โดยโครงสร้างประกอบด้วย 5 ฟิลด์ย่อย คือ ฟิลด์ id name sex age next เป็นที่น่าสังเกตว่าฟิลด์ next จะเก็บค่าชนิดพอยเตอร์ เพื่อใช้สำหรับชี้หรือเชื่อมโยงไปยังโครงสร้างอื่น
โดยทั่วไปเราใช้ NULL เพื่อบ่งบอกถึงโครงสร้างนั้น เป็นโครงสร้างสุดท้ายของชุดข้อมูลที่เชื่อมโยงหลายโครงสร้างเข้าด้วยกันเป็นสายหรือที่เรียกว่า ลิงค์ลิสต์
อยากทราบรายละเอียดทากกว่านี้