ชนิดข้อมูล
ข้อมูลที่ใช้ในการเขียนโปรแกรมมีหลายชนิด ซึ่งการเขียนโปรแกรมต้องเลือกใช้ให้เหมาะสมกับการใช้งาน เพราะข้อมูลมีขนาดแตกต่างกันไปตามชนิดของข้อมูล นอกจากนี้ ข้อมูลยังมีความแตกต่างกันโดยขึ้นกับเครื่องคอมพิวเตอร์ และตัวแปรโปรแกรมที่ใช้ในการประมวลผล แต่โดยทั่วไปแล้วในไมโครคอมพิวเตอร์ ชนิดข้อมูลมีการใช้ในโปรแกรม และขนาดดังนี้ตารางที่ 3.2.1 แสดงชนิดข้อมูลพื้นฐานในภาษาซี
ชนิดข้อมูลพื้นฐานในภาษาซีเป็นข้อมูลชนิดสเกลาร์ โดยที่ตัวแปรที่มีชนิดสเกลาร์ในขณะใดขณะหนึ่งจะเก็บข้อมูลได้เพียงค่าเดียวเท่านั้น ข้อมูลชนิดสเกลาร์แบ่งออกเป็น
ข้อมูลชนิดจำนวนเต็ม
การประกาศข้อมูลชนิดจำนวนเต็มสามารถทำได้ ดังนี้
- ข้อมูลชนิดตัวเลข (arithmetic data type) ซึ่งประกอบด้วย ข้อมูลชนิดจำนวนเต็ม และข้อมูลชนิดจำนวนจริง
- ข้อมูลชนิดตัวชี้ (pointer data type)
- ข้อมูลชนิดแจงนับ (enumerated data type)
ข้อมูลชนิดจำนวนเต็ม
การประกาศข้อมูลชนิดจำนวนเต็มสามารถทำได้ ดังนี้
ซึ่งเป็นการกำหนดให้ตัวแปร age เป็นชนิด int หรือชนิดจำนวนเต็ม เมื่อประกาศตัวแปรแล้วจะมีค่าอย่างใดอย่างหนึ่งได้ด้วยการใช้คำสั่งกำหนดค่าให้กับตัวแปร ซึ่งมีรูปแบบ ดังนี้
เช่น age = 15;
เครื่องหมาย = เป็นตัวดำเนินการกำหนดค่า และมีผลให้ตัวแปร age มีค่าข้อมูลเท่ากับ 15
เครื่องหมาย = เป็นตัวดำเนินการกำหนดค่า และมีผลให้ตัวแปร age มีค่าข้อมูลเท่ากับ 15
บรรทัดที่ 4 ตัวแปร age ถูกประกาศให้มีชนิดจำนวนเต็ม และถูกกำหนดให้มีค่าเป็น 15 ในบรรทัดที่ 5
บรรทัดที่ 6 ค่าตัวแปร age ซึ่งเป็นอาร์กิวเมนต์ที่สองของคำสั่ง printf() จะถูกจัดรูปแบบให้อยู่ในรูปของจำนวนเต็มฐานสิบก่อนแสดงผล
สังเกตว่าอาร์กิวเมนต์แรกของคำสั่ง printf() จะต้องมีชนิดเป็นสายอักขระเสมอ และคำสั่ง printf() จะมีจำนวนอาร์กิวเมนต์นอกเหนือจากอาร์กิวเมนต์แรกอีกเท่าใดขึ้นอยู่กับจำนวนชุดอักขระจัดรูปแบบในอาร์กิวเมนต์แรก โดยที่อาร์กิวเมนต์ในลำดับถัดไปอาจอยู่ในรูปของค่าคงตัว นิพจน์ หรือตัวแปรก็ได้
บรรทัดที่ 6 ค่าตัวแปร age ซึ่งเป็นอาร์กิวเมนต์ที่สองของคำสั่ง printf() จะถูกจัดรูปแบบให้อยู่ในรูปของจำนวนเต็มฐานสิบก่อนแสดงผล
สังเกตว่าอาร์กิวเมนต์แรกของคำสั่ง printf() จะต้องมีชนิดเป็นสายอักขระเสมอ และคำสั่ง printf() จะมีจำนวนอาร์กิวเมนต์นอกเหนือจากอาร์กิวเมนต์แรกอีกเท่าใดขึ้นอยู่กับจำนวนชุดอักขระจัดรูปแบบในอาร์กิวเมนต์แรก โดยที่อาร์กิวเมนต์ในลำดับถัดไปอาจอยู่ในรูปของค่าคงตัว นิพจน์ หรือตัวแปรก็ได้
บรรทัดที่ 4 เป็นการประกาศให้ x1 และ y1 เป็นตัวแปรชนิดจำนวนเต็มทั้งสองตัว และบรรทัดที่ 5 เป็นการประกาศให้ x2 และ y2 เป็นตัวแปรชนิดจำนวนเต็ม พร้อมกับกำหนดให่มีค่าเริ่มต้นเป็น 5 และ 0 ตามลำดับ
อาร์กิวเมนต์แรกของคำสั่ง printf() ในบรรทัดที่ 8 เป็นสายอักขระที่ประกอบด้วยชุดอักขระจัดรูปแบบ %d จำนวน 2 ชุด โดย %d แรกใช้จัดรูปแบบการแสดงผลค่าของตัวแปร x1 และ %d ที่สองใช้จัดรูปแบบการแสดงผลค่าของตัวแปร y1
นอกจากชุดอักขระจัดรูปแบบ %d แล้วยังมีชุดอักขระจัดรูปแบบสำหรับจำนวนเต็มในฐานอื่นอีก คือ %o และ %x ซึ่งเป็นชุดอักขระที่ใช้จัดรูปแบบข้อมูลให้อยู่ในรูปจำนวนเต็มฐานแปด (octal) และจำนวนเต็มฐานสิบหก (hexadecimal) ตามลำดับ ดังแสดงในตัวอย่างที่ 3.2.3
อาร์กิวเมนต์แรกของคำสั่ง printf() ในบรรทัดที่ 8 เป็นสายอักขระที่ประกอบด้วยชุดอักขระจัดรูปแบบ %d จำนวน 2 ชุด โดย %d แรกใช้จัดรูปแบบการแสดงผลค่าของตัวแปร x1 และ %d ที่สองใช้จัดรูปแบบการแสดงผลค่าของตัวแปร y1
นอกจากชุดอักขระจัดรูปแบบ %d แล้วยังมีชุดอักขระจัดรูปแบบสำหรับจำนวนเต็มในฐานอื่นอีก คือ %o และ %x ซึ่งเป็นชุดอักขระที่ใช้จัดรูปแบบข้อมูลให้อยู่ในรูปจำนวนเต็มฐานแปด (octal) และจำนวนเต็มฐานสิบหก (hexadecimal) ตามลำดับ ดังแสดงในตัวอย่างที่ 3.2.3
ข้อมูลชนิดจำนวนจริง
ชนิดข้อมูลจำนวนจริงในภาษาซีประกอบด้วย float double และ long double โดยชนิด float จะมีจำนวนตำแหน่งทศนิยมน้อยกว่าชนิด double และชนิด long double ตามลำดับ
ชุดอักขระจัดรูปแบบที่ใช้สำหรับข้อมูลชนิดจำนวนจริงในคำสั่ง printf() ประกอบด้วย %f ใช้เพื่อจัดรูปแบบข้อมูลชนิด float ให้อยู่ในรูปแบบจำนวนจริงฐานสิบ %e และ %E ใช้เพื่อจัดรูปแบบข้อมูลให้อยู่ในรูปของสัญลักษณ์เชิงวิทยาศาสตรสำหรับข้อมูลชนิด double และ long double จะใช้อักขระ lf และ Lf เป็นอักขระที่เพิ่มเข้าไปใช้ชุดอักขระจัดรูปแบบ ตามลำดับ
ชนิดข้อมูลจำนวนจริงในภาษาซีประกอบด้วย float double และ long double โดยชนิด float จะมีจำนวนตำแหน่งทศนิยมน้อยกว่าชนิด double และชนิด long double ตามลำดับ
ชุดอักขระจัดรูปแบบที่ใช้สำหรับข้อมูลชนิดจำนวนจริงในคำสั่ง printf() ประกอบด้วย %f ใช้เพื่อจัดรูปแบบข้อมูลชนิด float ให้อยู่ในรูปแบบจำนวนจริงฐานสิบ %e และ %E ใช้เพื่อจัดรูปแบบข้อมูลให้อยู่ในรูปของสัญลักษณ์เชิงวิทยาศาสตรสำหรับข้อมูลชนิด double และ long double จะใช้อักขระ lf และ Lf เป็นอักขระที่เพิ่มเข้าไปใช้ชุดอักขระจัดรูปแบบ ตามลำดับ
การแสดงผลข้อมูลชนิดจำนวนจริงในคำสั่ง printf() โดยใช้ %f %e หรือ %E จะแสดงค่าทศนิยม 6 ตำแหน่ง อย่างไรก็ตามในชุออักขระจัดรูปแบบจำนวนจริง ยังสามารถกำหนดจำนวนตำแหน่งในการแสดงผลข้อมูลให้กับข้อมูลแต่ละจำนวน เพื่อจัดรูปแบบผลลัพธ์ให้สวยงาม ดังแสดงในตัวอย่างที่ 3.2.5
จากตัวอย่างที่ 5 ในบรรทัดที่ 8 %7.2f มีความหมายว่าจำนวนตำแหน่งที่ใช้แสดงข้อมูลชนิดจำนวนจริงจะมีค่าอย่างน้อยเท่ากับ 7 โดย 1 ตำแหน่งเป็นทศนิยม 2 ตำแหน่งเป็นค่าทศนิยม และ 4 ตำแหน่งที่เหลือเป็นจำนวนเต็มด้านหน้าจุดทศนิยม ดังรูป