การเขียนโปรแกรมภาษา C เบื้องต้น ตอนที่ 2 : ตัวแปรและชนิดของข้อมูล
ตัวแปรคือชื่อเรียกที่เป็นตัวแทนของพื้นที่เก็บข้อมูลในหน่วยความจำ ยกตัวอย่างสมมติว่า บวกเลข 20 กับ 56 ในใจ คุณจะต้องเก็บค่า 20 หรือ 56 ในใจก่อน จากนั้นคุณถึงจะนำค่าทั้ง 2 มาบวกกันได้ เห็นไหมครับสิ่งที่เราเก็บ 20 และ 56 ในใจนั้นก็คือเราเก็บไว้ในหัวสมอง ในคอมพิวเตอร์ก็เช่นเดียวกัน กระบวนการทั้งหมดถ้าเขียนเป็นภาษา C เป็นดังนี้
การระบุตัวแปรที่ถูกต้องนั้น จะต้องมีตัวอักษรนำหน้าตัวเดียวหรือมากกว่านั้นก็ได้ สามารถมีตัวเลขประกอบและ _(underscore) ได้ โดยตัว _ สามารถจะเป็นตัวนำหน้าได้ ยกเว้นเพียงตัวเลขที่ไม่สามารถนำหน้าได้ และอีกกฏนึงที่สำคัญก็คือชื่อของตัวแปรจะต้องไม่ใช่ชื่อที่มีการกำหนดไว้แล้ว โดยตามมาตรฐานของภาษา C หรือ C++ มีดังนี้
asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while
รวมถึงตัวดำเนินการทางคณิตศาสตร์ต่างๆด้วย (operators)
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq
ที่สำคัญคือในภาษา C นั้น ตัวอักษรตัวเล็กหรือตัวใหญ่มีความแตกต่างกัน (Case Sensitive)
Note : การจัดการหน่วยความจำจะจัดการในหน่วย byte โดย 1 byte คือจำนวนน้อยที่สุดที่เราจะสามารถจัดการได้ โดย 1 byte มีค่าเท่ากับ 8 bits
การใช้งานตัวแปรนั้นจะต้องประกาศก่อนไว้ในส่วนหัวถ้าในกรณีที่เป็น global ถ้าเป็นกรณี local นั้น ก็เช่นเดียวกันคือประกาศไว้บนหัวใน function โดยมีรูปแบบคือ ชนิดของตัวแปรแล้วตามด้วย identifier เช่น
ตัวแปรทั้ง 3 ตัวด้านบนนี้ ตัวแปร i คือตัวแปรชนิด integer ซึ่งมีขนาด 2 bytes โดยสามารถเก็บข้อมูลได้ –32768 ถึง 32767 ส่วน ตัวแปร c นั้นเป็นตัวแปรประเภท unsigned char มีขนาด 1 byte ดังนั้นแล้วจะสามารถเก็บข้อมูลได้ 0 ถึง 255
โดย signed กับ unsigned นั้นคือ เครื่องหมาย โดยถ้าเป็นแบบ signed จะสามารถเก็บได้ –128 ถึง 127 ส่วน unsigned นั้นไม่มีเครื่องหมายจึงเป็นจำนวนเต็มบวกอย่างเดียว ส่วนตัวแปรตัวสุดท้าย test คือ ตัวแปรประเภท float ซึ่งสามารถเก็บข้อมูลได้ 3.4E-38 ถึง 3.4E+38 หรือ ทศนิยม 6
การประกาศตัวแปรสามารถประกาศได้ทีนึงหลายๆตัว สมมติว่าเราต้องการประกาศตัวแปรชนิด int จำนวน 5 ตัว a,b,c,d, e
และการประกาศตัวแปร ยังสามารถที่จะกำหนดค่าในตอนที่ประกาศตัวแปรได้ด้วย
เพื่อความเข้าใจมากขึ้น มาลองเขียนโปรแกรมง่ายๆเพื่อดูว่าการทำงานกับตัวแปรนั้นทำกันอย่างไร โดย code ข้างล่างนี้คือกระบวนการที่ผมเอ่ยไว้ตอนเริ่มต้น
สรุป :
- การระบุตัวแปร มีกฏอยู่ด้วยกันคือ ต้องนำหน้าด้วยตัวอักษรหรือ _ (underscore) แล้วถึงตามด้วยตัวเลขได้
- ในการเขียนโปรแกมจะต้องประกาศตัวแปรขึ้นหัวก่อน โดยถ้าในกรณี local variables ต้องประกาศอยู่บนหัวของ function
*** ขอขอบคุณข้อมูลจากเว็บ http://www.cplusplus.com/doc/tutorial/variables/ ***
a = 20;
b = 56;
result = a + b;
Identifiers (การระบุตัวแปร)
การระบุตัวแปรที่ถูกต้องนั้น จะต้องมีตัวอักษรนำหน้าตัวเดียวหรือมากกว่านั้นก็ได้ สามารถมีตัวเลขประกอบและ _(underscore) ได้ โดยตัว _ สามารถจะเป็นตัวนำหน้าได้ ยกเว้นเพียงตัวเลขที่ไม่สามารถนำหน้าได้ และอีกกฏนึงที่สำคัญก็คือชื่อของตัวแปรจะต้องไม่ใช่ชื่อที่มีการกำหนดไว้แล้ว โดยตามมาตรฐานของภาษา C หรือ C++ มีดังนี้
asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while
รวมถึงตัวดำเนินการทางคณิตศาสตร์ต่างๆด้วย (operators)
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq
ที่สำคัญคือในภาษา C นั้น ตัวอักษรตัวเล็กหรือตัวใหญ่มีความแตกต่างกัน (Case Sensitive)
ชนิดของตัวแปร
ในการเขียนโปรแกรมนั้น การที่จะเก็บค่าไว้ในหน่วยความจำ คอมพิวเตอร์จะต้องรู้ว่าตัวแปรที่จะเก็บค่านั้นเป็นตัวแปรประเภทไหน เพื่อความรวดเร็วในการประมวลผลและยังช่วยให้คอมไพเลอร์รู้ว่าควรจะต้องเตรียมเนื้อที่เท่าไหร่ในการเก็บตัวแปร โดยชนิดของตัวแปรแบ่งได้ดังตารางข้างล่างชนิด | รายละเอียด | ขนาด | ช่วงของค่า |
char | ตัวอักษรหรือจำนวนเต็มขนาดเล็ก | 1 byte | signed : -128 ถึง 127 unsigned : 0 ถึง 255 |
int | จำนวนเต็ม | 2 bytes | signed : -32768 ถึง 32767 unsigned : 0 to 65535 |
long int | จำนวนเต็ม | 4 bytes | signed : -2147483648 ถึง 2147483647 unsigned : 0 ถึง 4294967295 |
float | จำนวนทศนิยม | 4 bytes | 3.4E-38 ถึง 3.4E+38 หรือ ทศนิยม 6 ตำแหน่ง |
double | จำนวนทศนิยม | 8 bytes | 1.7E-308 ถึง 1.7E+308 หรือ ทศนิยม 12 ตำแหน่ง |
การประกาศตัวแปร
การใช้งานตัวแปรนั้นจะต้องประกาศก่อนไว้ในส่วนหัวถ้าในกรณีที่เป็น global ถ้าเป็นกรณี local นั้น ก็เช่นเดียวกันคือประกาศไว้บนหัวใน function โดยมีรูปแบบคือ ชนิดของตัวแปรแล้วตามด้วย identifier เช่น
int i; unsigned char c; float test;
ตัวแปรทั้ง 3 ตัวด้านบนนี้ ตัวแปร i คือตัวแปรชนิด integer ซึ่งมีขนาด 2 bytes โดยสามารถเก็บข้อมูลได้ –32768 ถึง 32767 ส่วน ตัวแปร c นั้นเป็นตัวแปรประเภท unsigned char มีขนาด 1 byte ดังนั้นแล้วจะสามารถเก็บข้อมูลได้ 0 ถึง 255
โดย signed กับ unsigned นั้นคือ เครื่องหมาย โดยถ้าเป็นแบบ signed จะสามารถเก็บได้ –128 ถึง 127 ส่วน unsigned นั้นไม่มีเครื่องหมายจึงเป็นจำนวนเต็มบวกอย่างเดียว ส่วนตัวแปรตัวสุดท้าย test คือ ตัวแปรประเภท float ซึ่งสามารถเก็บข้อมูลได้ 3.4E-38 ถึง 3.4E+38 หรือ ทศนิยม 6
ตำแหน่ง
การประกาศตัวแปรสามารถประกาศได้ทีนึงหลายๆตัว สมมติว่าเราต้องการประกาศตัวแปรชนิด int จำนวน 5 ตัว a,b,c,d, e
int a,b,c,d,e;
และการประกาศตัวแปร ยังสามารถที่จะกำหนดค่าในตอนที่ประกาศตัวแปรได้ด้วย
int a = 5; unsigned int b = 10;
เพื่อความเข้าใจมากขึ้น มาลองเขียนโปรแกรมง่ายๆเพื่อดูว่าการทำงานกับตัวแปรนั้นทำกันอย่างไร โดย code ข้างล่างนี้คือกระบวนการที่ผมเอ่ยไว้ตอนเริ่มต้น
// operating with variables
#include <stdio.h>#include <conio.h>int main()
{// declaring variables:
unsigned int a, b;int result;
a = 20;b = 56;result = a + b;printf("Result = %d",result);
getch();return 0;
}
สรุป :
- การระบุตัวแปร มีกฏอยู่ด้วยกันคือ ต้องนำหน้าด้วยตัวอักษรหรือ _ (underscore) แล้วถึงตามด้วยตัวเลขได้
- ในการเขียนโปรแกมจะต้องประกาศตัวแปรขึ้นหัวก่อน โดยถ้าในกรณี local variables ต้องประกาศอยู่บนหัวของ function
*** ขอขอบคุณข้อมูลจากเว็บ http://www.cplusplus.com/doc/tutorial/variables/ ***
Comments
Post a Comment