2.5 ข้อมูลของภาษา C สำหรับเรื่องข้อมูลของภาษา C จะกล่าวถึงเรื่องตัวอักขระ ค่าคงที่ และตัวแปร ดังรายละเอียดต่อไปนี้ 2.5.1 ตัวอักขระ (charactors) ตัวอักขระในภาษา C สามารถจำแนกออกเป็น 3 ประเภท คือ 1) ตัวเลข (digits) คือ ตัวเลข 0, 1, 2, …., 9 และตัวเลขฐานสิบหก A, B, C, D, E และ F 2) ตัวอักษร (letters) สามารถใช้ตัวอักษรพิมพ์ใหญ่ (uppercase letter) คือ A, B, C, …, Z และตัวอักษรพิมพ์เล็ก (lowercase letter) คือ a, b, c, …., z รวมทั้งสิ้น 52 ตัวอักษร 3) ตัวอักขระพิเศษ (special character) ซึ่งได้แก่ ! * + “ < ที่มา : สมชาย รัตนเลิศนุสรณ์, 2545 : 47. ยกเว้นเครื่องหมาย _ (underscore) เพียงตัวเดียวที่ภาษา C จัดเป็นตัวอักษรตัวหนึ่งโดยที่ตัวอักขระชนิดต่าง ๆ นี้จะถูกนำไปใช้เป็นค่าคงที่ ตัวแปร ตัวดำเนินการ หรือนิพจน์ ที่ใช้ในภาษา C ต่อไป 2.5.2 ค่าคงที่ (constants) ค่าคงที่ คือตัวอักขระที่นำมาประกอบกันตั้งแต่ 1 ตัวอักขระขึ้นไป เพื่อบอกลักษณะอย่างใดอย่างหนึ่งของข้อมูล บางครั้งเราอาจเรียกค่าคงที่ว่า “ข้อมูล” (data) ก็ได้ ค่าคงที่พื้นฐานที่สำคัญในภาษา C มีดังนี้ 1) ค่าคงที่ชนิดตัวเลขจำนวนเต็ม (integer constant) ค่าคงที่ชนิดนี้จะเป็นตัวเลขจำนวนเต็มซึ่งอาจมีเครื่องหมายบวกหรือลบก็ได้ เช่น 0, 9, 85, -698, 1832, -2080 เป็นต้น โดยตัวเลขจำนวนเต็มที่จะสามารถเก็บได้ปรกติจะอยู่ในช่วง -32768 ถึง 32767 เท่านั้น บางครั้งเรานิยมเรียกค่าคงที่ชนิดนี้ว่าค่าคงที่ int (integer) สำหรับการเก็บค่าคงที่ชนิด int นี้ภายในหน่วยความจำ จะใช้เนื้อที่ 2 bytes นอกจากนี้ยังสามารถเขียนค่าคงที่ชนิดนี้ให้อยู่ในรูปแบบตัวเลขฐานแปดและฐานสิบหกได้ โดยใช้ตัวเลขศูนย์ (0) นำหน้าแล้วตามด้วยเลขฐานแปดที่ต้องการหรือจะใช้ตัวเลขศูนย์เอ็กซ์ (0x หรือ 0X) นำหน้าแล้วตามด้วยเลขฐานสิบหกที่ต้องการ เช่น 046, 027, 0xBD, 0X1BCF เป็นต้น 2) ค่าคงที่ชนิดตัวเลขทศนิยม (floating point constant) ค่าคงที่ชนิดนี้จะเป็นตัวเลขจำนวนทศนิยม ซึ่งอาจจะมีเครื่องหมายบวก หรือลบก็ได้ หรือเป็นตัวเลขที่สามารถเขียนอยู่ในรูป E ยกกำลังได้ เช่น 3.0, 0.234, -0.54, 4E-06, 1.675E+10 เป็นต้น โดยตัวเลขทศนิยมนี้จะสามารถเก็บได้ปรกติจะอยู่ในช่วง 1.2E-38 ถึง 3.4E+38 เท่านั้น สำหรับการเก็บค่าคงที่ชนิด float นี้จะใช้เนื้อที่ภายในหน่วยความจำ 4 bytes โดยที่ 3 bytes แรกจะเก็บค่าตัวเลขทศนิยม ส่วนอีก 1 bytes สุดท้ายจะเก็บค่ายกกำลังเอาไว้ 3) ค่าคงที่ตัวเลขทศนิยมที่มีความละเอียดสองเท่า (double floating point) ค่าคงที่ชนิดนี้นิยมเรียกว่า ค่าคงที่แบบ double ซึ่งจะสามารถเก็บตัวเลขทศนิยมที่มีค่าอยู่ในช่วง 2.2E-308 ถึง 1.8E+308 เท่านั้น สำหรับการเก็บค่าคงที่ชนิด double นี้ จะใช้เนื้อที่ภายในหน่วยความจำ 8 bytes โดยใช้ 7 bytes แรกเก็บค่าตัวเลขทศนิยม ส่วนอีก 1 bytes สุดท้ายจะเก็บค่ายกกำลังเอาไว้ เช่นเดียวกับค่าคงที่ชนิด float 4) ค่าคงที่ชนิดตัวอักขระตัวเดียว (single character constant) ค่าคงที่ชนิดนี้จะสามารถเก็บตัวอักขระได้เพียง 1 ตัวอักขระ โดยอยู่ภายในเครื่องหมาย ‘ ’ (single quotation) เช่น ‘5’, ‘X’, ‘c’ เป็นต้น สำหรับการเก็บค่าคงที่ชนิด single character constant จะใช้เนื้อที่ภายในหน่วยความจำ 1 bytes 5) ค่าคงที่ชนิดข้อความ (strings constant) ค่าคงที่ชนิดนี้จะเก็บตัวอักขระที่มีความยาวตั้งแต่ 1 ตัวขึ้นไป โดยจะเก็บอยู่ในรูปของข้อมูลอะเรย์ (arrays) ซึ่งในแต่ละตัวอักขระจะใช้เนื้อที่ในการเก็บ 1 bytes เรียงติดต่อกันไปจนกระทั้งจบข้อความ และใน byte สุดท้ายจะเก็บ \0 (null character) เอาไว้เพื่อเป็นการบอกว่า จบข้อความแล้ว การเขียนค่าคงที่ชนิดข้อความจะต้องเขียนอยู่ภายในเครื่องหมาย “……” (double quotation) เช่น “X”, ”computer”, “4567”, “c” เป็นต้น ตัวอย่างที่ 2.1 แสดงการเก็บข้อมูลชนิดข้อความ คำว่า “COMPUTER” ภายในหน่วยความจำ จะมีลักษณะดังนี้ รูปที่ 2.2 แสดงการเก็บข้อมูลชนิดข้อความคำว่า “COMPUTER” ภายในหน่วยความจำ 2.5.3 ตัวแปร (variables)ที่มา : สมชาย รัตนเลิศนุสรณ์, 2545 : 49. ตัวแปร คือ ชื่อที่ผู้เขียนโปรแกรมตั้งขึ้นเพื่อใช้เป็นข้อมูล หรือใช้เก็บข้อมูล ดังนั้นเราต้องกำหนดตัวแปรให้สอดคล้องกับชนิดข้อมูลเสมอ เพื่อให้ระบบเตรียมเนื้อที่ในหน่วยความจำให้สอดคล้องกับตัวแปรชนิดนั้น ๆ ซึ่งเนื้อหาที่กล่าวถึงเกี่ยวกับตัวแปรประกอบด้วย หลักเกณฑ์การตั้งชื่อตัวแปร การประกาศตัวแปร และการกำหนดค่าเริ่มต้นให้กับตัวแปร 2.5.3.1 หลักเกณฑ์การตั้งชื่อตัวแปร ในภาษา C มีหลักเกณฑ์การตั้งชื่อตัวแปรดังนี้ 1) ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรเท่านั้น ตัวถัดมาเป็นได้ทั้งตัวอักษร ตัวเลข แต่ต้องไม่มีเครื่องหมายคำนวณ บวก (+), ลบ (-), คูณ (*), หาร (/), หารเอาเศษ (%) และเครื่องหมายเว้นวรรค (blank) คั่นระหว่างชื่อตัวแปร แต่ถ้าต้องการตั้งชื่อตัวแปรเว้นวรรคให้ใช้เครื่องหมาย _ (underscore) คั่นแทนการเว้นวรรค เช่น sum_1, sum_2 เป็นต้น 2) ความยาวของชื่อตัวแปร ขึ้นอยู่กับคอมไพเลอร์และระบบเครื่องคอมพิวเตอร์ ซึ่งภาษา C สามารถตั้งชื่อตัวแปรได้ยาวถึง 32 ตัว แต่โดยปกติเราไม่นิยมตั้งชื่อตัวแปรยาว ๆ 3) ชื่อตัวแปรตัวอักษรพิมพ์ใหญ่และตัวอักษรพิมพ์เล็ก แม้จะเขียนคำเดียวกัน หรือตัวอักษรพิมพ์ใหญ่ปนตัวอักษรพิมพ์เล็กที่สลับตำแหน่งกัน ระบบถือว่าเป็นคนละตัวแปรกัน เช่น ตัวแปร MAX, max, Max, mAx, maX จะถือว่าตัวแปรทั้ง 5 ตัวนี้เป็นคนละตัวกัน 4) ห้ามตั้งชื่อตัวแปรซ้ำกับคำสงวน (reserved word) หรือชื่อฟังก์ชัน หรือชื่อคำสั่งในภาษานั้น ๆ คำสงวนในภาษา C ตามมาตรฐาน ANSI (American National Standards Institute) มี 33 keywords ดังนี้ asm, auto double int struct ที่มา : Aitken, P. and B. Jones, 1994 : 600 – 601. 5) ชื่อตัวแปรควรตั้งให้สัมพันธ์กับข้อมูลที่ต้องการเก็บ เพื่อป้องกันความสับสน เนื่องจากโปรแกรมที่มีขนาดใหญ่จะมีตัวแปรจำนวนมาก ถ้าเราตั้งชื่อตัวแปรโดยไม่มีระบบระเบียบที่ดีพอจะทำให้ผู้อ่านโปรแกรมเกิดความสับสนและในกรณีที่โปรแกรมเกิดข้อผิดพลาดขึ้นจะเสียเวลาในการแก้ไขโปรแกรมมากขึ้น เช่น ตัวแปร name ใช้เก็บชื่อ 2.5.3.2 การประกาศตัวแปร (declaration of variables) ตัวแปรทุกตัวต้องมีการประกาศชื่อตัวแปร (variable name) และชนิดของตัวแปร (variable type) เอาไว้ก่อน จึงจะสามารถนำตัวแปรที่ประกาศไว้มาใช้งานได้ รูปแบบการประกาศตัวแปร
ตัวอย่างที่ 2.2 แสดงการประกาศตัวแปร 1. char d, c[30];
ที่มา : Aitken, P. and B. Jones, 1994 : 40. กรณีที่ต้องการประกาศตัวแปรและกำหนดค่าเริ่มต้นให้กับตัวแปรด้วยสามารถทำได้ดังนี้ รูปแบบการประกาศตัวแปรและกำหนดค่าให้กับตัวแปร
ตัวอย่างการประกาศตัวแปรและกำหนดค่าให้กับตัวแปร 2.5.3.3 การกำหนดค่าเริ่มต้นให้กับตัวแปร (initializing variables) ตัวอย่างที่ 2.3 แสดงการประกาศตัวแปรและกำหนดค่าให้ตัวแปร
2.5.3.3 การกำหนดค่าเริ่มต้นให้กับตัวแปร (initializing variables) หลังจากที่เราได้ประกาศตัวแปรไว้ ถ้าเราต้องการกำหนดค่าเริ่มต้นให้กับตัวแปรใดเราสามารถทำได้ดังนี้ รูปแบบกำหนดค่าเริ่มต้นให้กับตัวแปร
โดยที่ ตัวอย่างที่ 2.4 แสดงการประกาศค่าตัวแปรและกำหนดค่าเริ่มต้นให้กับตัวแปร int a, b, c=7; /* เป็นการประกาศตัวแปร a, b, และ c, เป็น int และกำหนด ค่าตัวแปร c มีค่า 7 */ a=b=c; /* เป็นการกำหนดค่าตัวแปร a และ b ให้มีค่าเท่ากับตัวแปร c (คือมีค่าเท่ากับ 7) */ |
วันพุธที่ 17 กันยายน พ.ศ. 2557
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
0 ความคิดเห็น:
แสดงความคิดเห็น