ชนิดของข้อมูล (data type) ในการเขียนโปรแกรมหนึ่งๆ
จะมีข้อมูลต่างๆ เข้ามาเกี่ยวข้องเช่นการนับจำนวนรอบ (loop) ของการทำงานโดยใช้ข้อมูลชนิดจำนวนเต็ม
หรือการแสดงข้อความโดยใช้ข้อมูลชนิดตัวอักษร จะเห็นว่าข้อมูลต่างๆ
ถูกแบ่งออกเป็นหลายชนิดตามจุดประสงค์ของการใช้งานนอกจากนี้ข้อมูลแต่ละชนิด
ยังใช้เนื้อที่หน่วยความจำ (memory) ไม่เท่ากันจึงมีการแบ่งชนิดของข้อมูล
ตัวแปร (variable) เนื่องจากข้อมูลถูกเก็บอยู่ในหน่วยความจำ
การอ้างถึงตำแหน่งของข้อมูลนี้
จึงมีความซับซ้อน
ไม่สะดวกต่อการเขียนโปรแกรม จึงมีการเรียกหน่วยความจำ ในตำแหน่งที่สนใจผ่านตัวแปร
การประกาศตัวแปร (variable
declaration) คือการจองเนื้อที่ในหน่วยความจำสำหรับเก็บค่าบางอย่าง
พร้อมทั้งกำหนดชื่อเรียกแทนหน่วยความจำในตำแหน่งนั้นเพื่อให้ผู้เขียนโปรแกรมมีความสะดวกในการเข้าถึง
ค่าที่เก็บอยู่ในหน่วยความจำดังกล่าว
รูปแบบการประกาศตัวแปร
type
variable-name;
โดย
type คือชนิดของตัวแปร
(ตามตารางด้านล่าง)
variable-name
คือชื่อของตัวแปร
(ควรตั้งชื่อให้มีความหมายสอดคล้องกับการใช้งานและจำง่าย)
ตัวอย่างการประกาศตัวแปรแบบต่างๆ
int num; /*ประกาศตัวแปรชนิิดจำนวนเต็ม
ชื่อ num*/
float x;
char grade,
sex; /*ประกาศตัวแปรชนิิดอักขระ ชื่อ grade และ
sex (ประกาศพร้อมกันในบรรทัดเดียว)*/
float temp =
123.45; /*ประกาศตัวแปรชนิดเลขทศนิยมพร้อมกำหนดค่า
123.45*/
char c =
"A", t = "B"; /*ประกาศตัวแปรชนิดอักขระสองตัว
พร้อมกำหนดค่าให้แต่ละตัว*/
int oct = 0555;
/*ประกาศตัวแปรชนิดจำนวนเต็มชื่อ num พร้อมกำหนดค่าคือ
555 (เป็นเลขฐานแปดเพราะมี 0 นำหน้า)*/
int hex = 0x88;
/*ประกาศตัวแปรชนิดจำนวนเต็มชื่อ hex พร้อมกำหนดค่าคือ
88 (เป็นเลขฐาน 16 เพราะมี 0x นำหน้า)*/
ข้อควรระวัง!!
1 ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมาย
"_" เท่านั้น
2 ภายในชื่อตัวแปรให้ใช้ตัวอักษร,
ตัวเลข 0-9 หรือเครื่องหมาย "_"
3 ห้ามมีช่องว่างในชื่อตัวแปร
4 อักษรตัวพิมพ์เล็ก-ใหญ่
มีความแตกต่างกัน (case sensitive) เช่น Name, NAME และ
nameถือเป็นชื่อที่แตกต่างกัน
5 ห้ามซ้ำกับชื่อตัวแปรสงวน
(reserved word)
6 ตัวแปรชนิดข้อความ
(string)
ถ้าเราต้องการเก็บข้อความ
"C programming language" ไว้ในตัวแปร จะทำได้อย่างไร?
ที่ผ่านมาเราทราบว่าเราสามารถเก็บข้อมูลชนิดตัวอักขระไว้ในตัวแปรชนิด
char ได้ แต่ตัวแปรชนิด char นั้นสามารถเก็บตัวอักขระได้เพียงตัวเดียวเท่านั้น
ไม่สามารถเก็บทั้งข้อความได้ แล้วเราจะแก้ปัญหาได้อย่างไร?
หากพิจาณาให้ดี
ข้อความดังกล่าวประกอบด้วยตัวอักขระ (ตัวอักษร+สัญลักษณ์) หลายๆ
ตัวเรียงต่อกันเป็นสาย
ซึ่งเป็นลักษณะของตัวแปรแบบ
array (จะได้กล่าวภายหลัง)
การประกาศตัวแปรแบบ array เพื่อเก็บข้อมูลดังกล่าวสามารถทำได้ดังนี้
type
variable-name[size];
โดย
size คือขนาดของข้อความ+1
โดยขนาดที่เพิ่มขึ้นเพราะต้องเก็บอักขระสุดท้ายของข้อความเป็นอักขระ
\0
หรือ NULL เพื่อบอกว่าสิ้นสุดข้อความแล้ว
ตัวอย่างการประกาศตัวแปรแบบ
array เพื่อเก็บข้อความ "C programming
language" (22 ตัวอักษร) ทำได้หลายวิธีดังนี้
char[23]
text = "C programming language";
/*กำหนดขนาดเพิ่มขึ้น
1 ตัว สำหรับเก็บค่า \0 หรือ NULL ในตำแหน่งสุดท้าย*/
char[23]
text = {'C',' ','p','r','o','g','r','a','m','m','i','n','g','
','l','a','n','g','u','a','g','e','\0'};
/*กำหนดขนาดเพิ่มขึ้น
1 ตัว สำหรับเก็บค่า \0 หรือ NULL ในตำแหน่งสุดท้าย*/
char[] text
= "C programming language";
/*ถ้าไม่กำหนดขนาดของ
array แล้ว
ตัวแปรภาษาซีจะกำหนดให้โดยมีขนาดเท่ากับขนาดข้อความ+1*/
นอกจากนี้เรายังสามารถแก้ไขตัวอักษรที่เก็บอยู่ใน
array ได้โดยการอ้างอิงตำแหน่งเช่น
text[0]
= 'A'; /*แก้ตัวอักษรตัวแรก (เริ่มนับจาก 0)
จะได้ผลลัพธ์คือ A programming language*/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น