3.3 ชนิดของข้อมูล
TRANSCRIPT
1 Integer Type (ชนิดข้อมูลแบบจ ำนวนเต็ม)
2 Character Type (ชนิดข้อมูลแบบตัวอักษร)
3
4
กำรประกำศตัวแปรควรเลือกใช้ชนิดข้อมูลที่เหมำะสม และต้ัง
ชื่อตัวแปรตำมกฎในกำรต้ังชื่อเสมอ ซึ่งชนิดข้อมูลต่ำง ๆ ในภำษำ C มี
ดังนี ้
String Type (ชนิดข้อมูลแบบข้อควำม)
Floating Type (ชนิดข้อมูลแบบจ ำนวนทศนิยม)
1 Integer Type (ชนิดข้อมูลแบบจ ำนวนเต็ม)
Integer เป็นชนิดข้อมูลแบบจ ำนวนเต็ม ประกอบไปด้วย
จ ำนวนเต็มบวก จ ำนวนเต็มลบ และจ ำนวนเต็มศูนย์ ซึ่งใน
ภำษำ C ได้แบ่งจ ำนวนเต็มออกเป็นชนิดต่ำง ๆ ซึ่งแต่ละชนิดมี
ขนำดและขอบเขตของกำรใช้งำนที่แตกต่ำงกัน กำรเลือกใช้
จ ำนวนเต็มชนิดใดในกำรประกำศตัวแปรน้ันก็ขึ้นอยู่กับขนำดใน
กำรจัดเก็บข้อมลูของตัวแปรน้ัน ๆ
1 Integer Type (ชนิดข้อมูลแบบจ ำนวนเต็ม)
ในข้อมูลชนิดเดียวกันของภำษำ C อำจจะมีควำมแตกต่ำงใน
เรื่องของขนำดและขอบเขตชนิดข้อมูลได้ ซึ่งจะขึ้นอยู่กับระบบปฏิบัติกำร
ที่ใช้งำน เช่น
• ในระบบปฏิบัติกำร 16 บิต ข้อมูลชนิด int จะเป็น 16 บิต หรือ 2
ไบต์
• ในระบบปฏิบัติกำร 32 บิต ข้อมูลชนิด int จะเป็น 32 บิต หรือ 4
ไบต์
ชนิดขอ้มูล กำรคิดเครือ่งหมำย ขนำดไบต์ ช่วงข้อมูล
Short int
signed (คิดเครื่องหมำย)
2
-32,768 ถึง 32,767
unsigned (ไม่คิดเครือ่งหมำย) 0 ถึง 65,535
int
signed (คิดเครื่องหมำย)
4
-2,147,483,648 ถึง
2,147,483,647
unsigned (ไม่คิดเครือ่งหมำย) 0 ถึง 4,294,967,295
Long int
signed (คิดเครื่องหมำย)
4
-2,147,483,648 ถึง
2,147,483,647
unsigned (ไม่คิดเครือ่งหมำย) 0 ถึง 4,294,967,295
ตำรำงแสดงขนำดและขอบเขตข้อมูล
กำรก ำหนดค่ำให้กับตัวแปรชนดิจ ำนวนเตม็
• จะต้องเป็นค่ำตัวเลขไม่มีจุดทศนิยม
• ห้ำมใช้เครื่องหมำย , หรือช่องว่ำงคั่นระหว่ำงตัวเลข เช่น 1,234
ซึ่งถือว่ำผิด
• กรณีเป็นค่ำบวกไม่จ ำเป็นต้องใส่เครื่องหมำย + น ำหน้ำค่ำ แต่
กรณีเป็นค่ำลบต้องใส่เครื่องหมำย – น ำหน้ำค่ำ
• ช่วงตัวเลขจ ำนวนเต็มควรอยู่ในช่วงชนิดข้อมูลนั้น ๆ
• สำมำรถใช้เครื่องหมำย suffix ต่อท้ำยค่ำที่ก ำหนดให้ตัวแปรได้
โดยใช้ L ต่อท้ำยชนิดข้อมูล long หรือใช้ U ต่อท้ำยค่ำเป็น unsigned
(ใชตั้วพิมพใ์หญ่หรือเล็กควำมหมำยเหมือนกัน)
2 Character Type (ชนิดข้อมูลแบบตัวอักษร)
Char เป็นชนิดข้อมูลแบบอักษรตัวเดียว มีขนำด 1 ไบต์ หรือ
8 บิต โดยจะก ำหนดค่ำอยู่ในเครื่องหมำย ‘ ’ ซึ่งเป็นได้ท้ัง
ตัว อักษร (Letter) , ตั ว เลข (Digit) และสัญลักษณ์พิ เศษ
(Special Symbols) ลักษณะส ำคัญของข้อมูลชนิดนี้คือ ไม่
สำมำรถน ำไปค ำนวณได้ ตัวอย่ำงเช่น ตัวอักษร ‘2’ แตกต่ำง
จำกตัวเลข 2 ดังน้ัน ‘2’ + 3 จึงไม่สำมำรถประมวลผลได้ในกำร
เขยีนโปรแกรมภำษำ C
3 String Type (ชนิดข้อมูลแบบตัวข้อควำม)
ในควำมจริงน้ัน ตัวแปรชนิดข้อควำมไม่มีกำรก ำหนดไว้ใน
ภำษำ C แต่เรำสำมำรถใช้ตัวแปรชนิดข้อควำมในรูปแบบของ
ชุดตัวแปรอักขระได้โดยใช้เทคนิคในเรื่องของ Array เข้ำมำช่วย
กำรก ำหนดค่ ำข้ อควำมให้ กับตั วแปรจะอยู่ ภำยใน
เครื่องหมำย (“ ”) โดยในกำรสร้ำงต้องประกำศขนำด Array
ไว้ล่วงหน้ำ เพ่ือเป็นกำรจองพื้นที่ส ำหรับขนำดของข้อมูล
เหนื่อย
นัก
ก็
พักก่อน
Floating Point Type เป็นชนิดข้อมูลแบบตัวเลขทศนิยม
ที่สำมำรถน ำไปค ำนวณทำงคณิตศำสตร์ได้ ซึ่งอำจจะมีจุด
ทศนิยมหรือไม่มีจุดทศนิยมก็ได้ โดยสำมำรถเขียนในรูป
ทศนิยมได้ ดังนี ้
• เลขทศนิยม เช่น 12.568, -13.5
• เลขทศนิยมแบบยกก ำลัง เช่น 2.004E+5, 4.10956E-25
ซึ่ง 2.004E+5 ก็คอื 2.004 x 105
ส่วน 4.10956E ก็คอื 4.10956 x 10
-25
4 Floating Point Type (ชนิดข้อมูลแบบตัวจ ำนวนทศนิยม)
ชนิดข้อมลู ขนำดไบต์ ช่วงข้อมลู
float 4 3.4 x 10-38
ถึง 3.4 x 1038
double 8 1.7 x 10-308
ถึง 1.7 x 10308
long double 10 3.4 x 10-4932
ถึง 1.1 x 104932
ตำรำงแสดงขนำดและขอบเขตข้อมูล
จุดสังเกตพบว่ำ ชนิดข้อมูลแบบทศนิยมจะเป็นแบบ signed (คิด
เครื่องหมำย) เสมอ ซึ่งเรำสำมำรถก ำหนดค่ำให้ตัวแปร โดยค ำนึงถึง
ข้อก ำหนดดังนี้จะต้องเป็นค่ำตัวเลขที่สำมำรถมีจุดทศนิยมได้
• ห้ำมใช้เครื่องหมำย , หรือช่องว่ำงคั่นระหว่ำงตัวเลข เช่น 1,234.03
• กรณีเป็นค่ำบวกไม่จ ำเป็นต้องใส่เครื่องหมำย + น ำหน้ำค่ำ แต่ใน
กรณีเป็นค่ำลบต้องใส่เครื่องหมำย – น ำหน้ำค่ำเสมอ
• กำรเขียนในรูปแบบใช้ตัวอักษร E ค่ำที่ถูกก ำหนดสำมำรถก ำหนด
ได้ท้ังค่ำบวกและค่ำลบ
• สำมำรถใช้เครื่องหมำย suffix ต่อท้ำยค่ำที่ก ำหนดให้ตัวแปรได้
โดยใช้ L ต่อท้ำยชนิดข้อมูล long double หรือใช้ F ต่อท้ำยค่ำที่เป็น
double (ใชตั้วพิมพใ์หญ่หรือเล็กควำมหมำยเหมือนกัน)
ค่ำคงที่ (Constants)
1. ระบุค่ำโดยตรง (Literal Constants) เป็นกำรก ำหนด
ค่ำคงที่เพื่อใช้งำนโดยตรง โดยไม่มีกำรก ำหนดค่ำผ่ำนตัวแปร
ใด ๆ ทั้งสิ้น ตัวอย่ำงเช่น ‘I’, “Love Thailand”, ‘\007’ เป็นต้น
2. นิยำมโดย # (Defined Constants) เป็นกำรก ำหนดค่ำคงที่
โดยกำรประกำศใช้งำนไว้ในส่วนของเฮดเดอร์ไฟล์
3. เก็บไว้ในตัวแปร (Memory Constants) เป็นกำรก ำหนด
ค่ำคงที่ในรูปแบบของตัวแปร
ค่ำคงที่ (Constants) คือ ค่ำข้อมูลชนิดใดชนิดหนึ่งที่ไม่มีกำรเปลี่ยนแปลงใน
ขณะที่โปรแกรมท ำงำน ตัวอย่ำงเช่น ค่ำ ซึ่งมีค่ำเท่ำกับ 3.14 เป็นต้น ซึ่งใน
ภำษำ C สำมำรถใช้งำนค่ำคงที่ได้ 3 รูปแบบดังนี้
กฎของกำรแปลงชนิดของข้อมูล
(Data Type Conversion)
Implicit Type Conversion
ในกำรเขียนโปรแกรมเพื่อก ำหนดกำรท ำงำนอย่ำงใดอย่ำงหนึ่ง บำครั้ง
อำจมีชนิดข้อมูลต่ำง ๆ ในกำรประมวลผลมำกกว่ำ 1 ชนิด ดังนั้น ก่อน
ประมวลผลข้อมูลก็ควรแปลงข้อมูลต่ำง ๆ ให้มีชนิดข้อมูลเดียวกันก่อน
หลักในกำรแปลงชนิดของข้อมูล ซึ่งสำมำรถแปลงได้ 2 วิธีดงันี ้
Explicit Type Conversion
char
Implicit Type Conversion
Implicit Type Conversion
หลักกำรแปลงชนิดข้อมูลในวิธีนี้คือ คอมไพเลอร์จะท ำหน้ำที่แปลง
ชนิดข้อมูลของข้อมูลที่มีค่ำนัยส ำคัญต่ ำไปเป็นชนิดข้อมูลชนิดเดียวกันกับข้อมูล
ที่มีค่ำนัยส ำคัญสูงกว่ำในชุดค ำสั่งนั้น ๆ โดยอัตโนมัติ ส ำหรับล ำดับนัยส ำคัญ
ของชนิดข้อมูล สำมำรถอธิบำยได้ ดังรูป
ล ำดับนยัส ำคญั
(Signifiance)
short
int
unsigned int
long int
unsigned long int
float
double
Long double
Explicit Type Conversion (Casting)
เป็นกำรเปลี่ยนประเภทชนิดข้อมูลเป็นชนิดข้อมูลตำมที่เรำต้องกำร
โดยใช้ Explicit Type Conversion (Casting) ซึ่งมีรูปแบบดังนี้
โดยที่ DataType คือ ชนิดข้อมูลปลำยทำง
ExpressionOrVariableName คือ นิพจน์หรือตัวแปรที่ต้องกำร
แปลงข้อมูล
(DataType) ExpressionOrVariableName
ที่มำ : คู่มืออบรมครูวิทยำศำสตร์ คณิตศำสตร์ คอมพิวเตอร์ โลก ดำรำศำสตร์ และอวกำศ ระดับมัธยมศึกษำตอนปลำย
หนังสือเรียนรำยวิชำเพิ่มเติม กำรเขียนโปรแกรมเบื้องต้นด้วยภำษำ C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภำษำ ส ำนักพิมพ์ IDC PREMIER