1. บทที่ 2
ตัวแปร
ตัวแปร (Variable) คือ สิ่งที่จะช่วยเราจาค่าต่างๆไว้แสดงค่าหรือคานวณในภายหลังโดยตัวแปรเหล่านี้
จะเก็บค่าเอาไว้ในหน่วยความจา(Memory) ของคอมพิวเตอร์นั่นเอง
การประกาศตัวแปร (Declarations) ก่อนที่เราจะนาตัวแปรมาใช้ได้ เราต้องประกาศตัวแปรเสียก่อน
(สร้างมันขึ้นมา)โดยมีรูปแบบดังนี้
int number;
char letter;
int และ char คือประเภทของข้อมูล ที่ตัวแปรนั้นๆสามารถเก็บได้ ส่วนnumber และ letter คือชื่อของตัว
แปร ซึ่งเวลาเราจะเรียกข้อมูลที่เก็บค่าเอาไว้มาใช้ก็ใช้ชื่อตัวแปรนี่แหละ ต่อไปมาดูประเภทของข้อมูล
กันดีกว่า
Type name Meaning เก็บค่าได้ตั้งแต่
char ใช้เก็บ ตัวอักษร หรืออักขระ1 ตัว (Character) -128 ถึง 127
int ใช้เก็บ เลขจานวนเต็ม (Integer) -2,147,483,648 ถึง 2,147,483,647
float ใช้เก็บ เลขจานวนจริง (Floating number) 3.4E +/-38 (7หลัก)
double
ใช้เก็บ เลขจานวนจริง มีขนาดใหญ่กว่าfloat เก็บได้
ละเอียดกว่า
1.7E +/- 308 (15หลัก)
ตัวอย่างการเลือกใช้ประเภทของตัวแปร
ถ้าจะเก็บข้อมูลเป็น ประเภทของตัวแปรควรจะเป็น
เกรดเฉลี่ย (เช่น 3.90) float
อายุคน (เช่น 50 ปี , 25 ปี) char หรือ int
ความยาวของถนน (เช่น25 km) int (หรือ float ถ้าเป็นทศนิยม)
ความสูงของคน (เช่น 170.6) float
เงินเดือน (ไม่เกิน30,000) int
เงินเดือนนักธุรกิจพันล้าน int
ผลการคานวณที่มีทศนิยม 20 ตาแหน่ง double
2. เอกสารประกอบการสอน ภาษาซี
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 17
การกาหนดค่าตัวแปรคือการเปลี่ยนค่าที่ตัวแปรนั้นๆ เก็บไว้ในหน่วยความจาเป็นค่าที่กาหนด
int x; // declare x asa integer variable
x = 5; // assign a value to x
บรรทัดแรกคือการประกาศตัวแปรที่มีชื่อว่า x ไว้เก็บข้อมูลประเภทเลขจานวนเต็ม(Integer)
บรรทัดที่สอง คือการกาหนดค่าตัวแปร ในที่นี้เป็นการกาหนดค่า5 ลงในตัวแปรx
เราสามารถกาหนดค่าตัวแปรพร้อมๆกับการประกาศตัวแปรได้ ดังนี้
int x = 5;
char c = 'A';
double balance= 3800076.75;
float gpa = 3.9;
การแสดงผลด้วยคาสั่งprintf() มีรูปแบบดังนี้
int x = 5, y = 7;
float z = 392.65;
char c = 'A';
printf( "x + y = %dn", x + y ); // %d - integer
printf( "z = %fn", z ); // %f - floating number
printf( "c = %cn", c ); // %c - character
ผลลัพธ์
x + y = 12
z = 392.649994
c = A
จะเห็นได้ว่าเราใช้รูปแบบ % กับชนิดข้อมูลต่าง ๆ ดังนี้ (ใช้กับการพิมพ์ และการรับข้อมูล)
%d int
%c char
%f float
%lf double
%s string
นอกจากนี้ เรายังสามารถใช้ %o %x %e %g กับตัวแปรประเภทตัวเลขได้อีกด้วย
คาถาม
จงประกาศตัวแปรดังรายละเอียดต่อไปนี้
เสร็จแล้ว ให้แสดงผลลัพธ์ออกมาให้เหมือนด้านล่างนี้
The value of my first variable is: 23.61
ชื่อตัวแปร: myFirstVar (ตัวใหญ่ตัวเล็กสังเกตให้ดีด้วย)
ค่าในตัวแปร: 23.61
ผลลัพธ์
3. เอกสารประกอบการสอน ภาษาซี
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 18
Variable naming
ชื่อตัวแปรนั้น หากว่าอยากจะใช้ชื่อไหน ก็สรรหามาประกาศกันได้คงจะสับสนกันน่าดู
ภาษาซีมีกฏเกณฑ์ในการตั้งชื่อตัวแปรดังนี้
1. ต้องประกอบขึ้นจากตัวอักษรภาษาอังกฤษ ตัวเลข และเครื่องหมาย _ (Underscore) เท่านั้น
2. อักขระตัวแรกจะต้องเป็นตัวอักษรภาษาอังกฤษ หรือเครื่องหมาย _ เท่านั้น (ห้ามเป็นตัวเลข)
3. ตัวพิมพ์ใหญ่ และตัวพิมพ์เล็กถือเป็นคนละตัวกัน เช่นSalary และ SALARY เป็นชื่อที่แตกต่างกัน
4. มีความยาวไม่เกิน31 อักขระ
5. ชื่อจะต้องไม่ซ้ากับคาสงวน (Reserved word)
คาสงวนของภาษาซี มีดังนี้
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
ถ้าเราตั้งชื่อตัวแปร ไม่เป็นไปตามกฏโปรแกรมก็จะไม่สามารถทางานได้
นอกจากนี้ยังมีสิ่งที่ควรรู้ในการตั้งชื่ออีกคือ
- ไม่ควรตั้งชื่อตัวแปรโดยใช้ตัวพิมพ์ใหญ่ทั้งหมด เพราะอาจถูกเข้าใจผิดว่าเป็นค่าคงที่
- หากชื่อนั้นประกอบขึ้นจากคาหลายคา ให้ใช้ _ คั่นแต่ละคา เช่น student_info_nickname
หรือใช้ตัวพิมพ์ใหญ่แทน เช่น studentInfoNickname
- และอีกอันที่ขาดไม่ได้คือ ควรตั้งชื่อให้สื่อความหมาย ว่าตัวแปรนั้นๆเก็บข้อมูลอะไรไว้อยู่
เช่น student_id เราสามารถทราบได้ทันทีว่าเป็นข้อมูลID ของนักเรียน
แต่หากตั้งชื่อแค่ว่า data เราไม่สามารถทราบได้ว่าเป็นข้อมูลอะไร
หากมาอ่านในภายหลังจะทาความเข้าใจได้ลาบาก