ตัวแปรในภาษาซี
ตัวแปร (Variable) คือ การจองพื้นที่ในหน่วยความจำของคอมพิวเตอร์สำหรับเก็บข้อมูลที่ต้องใช้ในการทำงานของโปรแกรม โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้นด้วย เพื่อความสะดวกในการเรียกใช้ข้อมูล ถ้าจะใช้ข้อมูลใดก็ให้เรียก
ผ่านชื่อของตัวแปรที่เก็บเอาไว้
ชนิดของข้อมูล
ภาษาซีเป็นอีกภาษาหนึ่งที่มีชนิดของข้อมูลให้ใช้งานหลายอย่างด้วยกัน ซึ่งชนิดของข้อมูลแต่ละอย่างมีขนาดเนื้อที่
ที่ใช้ในหน่วยความจำที่แตกต่างกัน และเนื่องจากการที่มีขนาดที่แตกต่างกันไป ดังนั้นในการเลือกใช้งานประเภทข้อมูล
ก็ควรจะคำนึงถึงความจำเป็นในการใช้งานด้วย สำหรับประเภทของข้อมูลมีดังนี้คือ
ชนิด |
ขนาดความกว้าง |
ช่วงของค่า |
การใช้งาน |
Char |
8 บิต |
ASCII character (-128 ถึง 127) |
เก็บข้อมูลชนิดอักขระ |
Unsigned char |
8 บิต |
0-255 |
เก็บข้อมูลอักขระแบบไม่คิดเครื่องหมาย |
Int |
16 บิต |
-32768 ถึง 32767 |
เก็บข้อมูลชนิดจำนวนเต็ม |
long |
32 บิต |
-2147483648 ถึง 2147483649 |
เก็บข้อมูลชนิดจำนวนเต็มแบบยาว |
Float |
32 บิต |
3.4E-38 ถึง 3.4E+38 หรือ ทศนิยม 6 |
เก็บข้อมูลชนิดเลขทศนิยม |
Double |
64 บิต |
1.7E-308 ถึง 1.7E+308 หรือ ทศนิยม 12 |
เก็บข้อมูลชนิดเลขทศนิยม |
Unsigned int |
16 บิต |
0 ถึง 65535 |
เก็บข้อมูลชนิดจำนวนเต็ม ไม่คิดเครื่องหมาย |
Unsigned long |
32 บิต |
0 ถึง 4294967296 |
เก็บข้อมูลชนิดจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย |
รูปแบบในการประกาศตัวแปรในภาษา C
การสร้างตัวแปรขึ้นมาใช้งานจะเรียกว่า การประกาศตัวแปร (Variable Declaration) โดยเขียนคำสั่งให้ถูกต้องตามแบบ
การประกาศตัวแปร แสดงดังนี้
type name;
type : ชนิดของตัวแปร
name : ชื่อของตัวแปร ซึ่งต้องตั้งให้ถูกต้องตามหลักของภาษา C
การเขียนคำสั่งเพื่อประกาศตัวแปร ส่วนใหญ่แล้วจะเขียนไว้ในส่วนหัวของโปรแกรมก่อนฟังก์ชัน main ซึ่งการเขียน
ไว้ในตำแหน่งดังกล่าว จะทำให้ตัวแปรเหล่านั้นสามารถเรียกใช้จากที่ใดก็ได้ในโปรแกรม ดังตัวอย่าง
#include <stdio.h> |
|
int num; |
สร้างตัวแปรชื่อ num เพื่อเก็บข้อมูลชนิดจำนวนเต็ม |
float y; |
สร้างตัวแปรชื่อ y เพื่อเก็บข้อมูลชนิดเลขทศนิยม |
char n; |
สร้างตัวแปรชื่อ n เพื่อเก็บข้อมูลชนิดตัวอักขระ |
void main() |
|
{ |
|
printf("Enter number : ") |
|
scanf("%d",&num); |
|
printf("Enter name : "); |
|
scanf("%f",&n); |
|
printf("Thank you"); |
|
} |
|
หลักการตั้งชื่อตัวแปร
ในการประกาศสร้างตัวแปรต้องมีการกำหนดชื่อ ซึ่งชื่อนั้นไม่ใช่ว่าจะตั้งให้สื่อความหมายถึงข้อมูลทีเก็บอย่างเดียว โดยไม่คำนึงถึงอย่างอื่น เนื่องจากภาษา C มีข้อกำหนดในการตั้งชื่อตัวแปรเอาไว้ แล้วถ้าตั้งชื่อผิดหลักการเหล่านี้ โปรแกรมจะไม่สามารถทำงานได้ หลักการตั้งชื่อตัวแปรในภาษา C แสดงไว้ดังนี้
1. |
ต้องขึ้นต้นด้วยตัวอักษร A-Z หรือ a-z หรือเครื่องหมาย _(Underscore) เท่านั้น |
2. |
ภายในชื่อตัวแปรสามารถใช้ตัวอักษร A-Z หรือ a-z หรือตัวเลข0-9 หรือเครื่องหมาย _ |
3. |
ภายในชื่อห้ามเว้นช่องว่าง หรือใช้สัญลักษณ์นอกเหนือจากข้อ 2 |
4. |
ตัวอักษรพิมพ์เล็กหรือใหญ่มีความหมายแตกต่างกัน |
5. |
ห้ามตั้งชื่อซ้ำกับคำสงวน (Reserved Word) ดังนี้ |
auto |
default |
float |
register |
struct |
volatile |
break |
do |
far |
return |
switch |
while |
case |
double |
goto |
short |
typedef |
char |
else |
if |
signed |
union |
const |
enum |
int |
sizeof |
unsigned |
continue |
extern |
long |
static |
void |
|
|
|
ตัวอย่างการตั้งชื่อตัวแปรในภาษา C ทั้งที่ถูกต้องและไม่ถูกต้องตามหลักการ แสดงดังนี้
bath_room |
ถูกต้อง |
n-sync |
ผิดหลักการ เนื่องจากมีเครื่องหมาย - ปรากฏในชื่อ |
108dots |
ผิดหลักการ เนื่องจากขึ้นต้นด้วยตัวเลข |
Year# |
ผิดหลักการ เนื่องจากมีเครื่องหมาย # อยู่ในชื่อ |
_good |
ถูกต้อง |
goto |
ผิดหลักการ เนื่องจากเป็นคำสงวน |
work |
ถูกต้อง |
break |
ผิดหลักการ เนื่องจากเป็นคำสงวน |
ตัวแปรสำหรับข้อความ
ในภาษา C ไม่มีการกำหนดชนิดของตัวแปรสำหรับข้อความโดยตรง แต่จะใช้การกำหนดชนิดของตัวแปรอักขระ (char) ร่วมกับการกำหนดขนาดแทน และจะเรียกตัวแปรสำหรับเก็บข้อความว่า ตัวแปรสตริง (string) รูปแบบการประกาศตัวแปร
สตริงแสดงได้ดังนี้
char name[n] = "str";
|
ชื่อของตัวแปร |
n |
ขนาดของข้อความ หรือจำนวนอักขระในข้อความ |
str |
ข้อความเริ่มต้นที่จะกำหนดให้กับตัวแปรซึ่งต้องเขียนไว้ภายในเครื่องหมาย " " |
ตัวอย่างการประกาศตัวแปรสำหรับเก็บข้อความ แสดงได้ดังนี้
char name[5] = "kwan" ; |
สร้างตัวแปร name สำหรับเก็บ ข้อความ kwan ซึ่งมี 4 ตัวอักษร ดังนั้น name ต้องมีขนาด 5 |
char year[5] = "2549"; |
สร้างตัวแปร year สำหรับเก็บ ข้อความ 2549 ซึ่งมี 4 ตัวอักษร ดังนั้น year ต้องมีขนาด 5 |
char product_id[4] = "A01"; |
สร้างตัวแปร product_id สำหรับเก็บ ข้อความ A01 ซึ่งมี 3 ตัวอักษร ดังนั้น product_id ต้องมีขนาด 4 |