ตัวแปรและตัวดำเนินการ

ตัวแปร(variables)

          เป็นชื่อที่ตั้งเพื่อใช้อ้างอิงถึงข้อมูลต่างๆ โดยตัวแปรจะมีการใช้เนื้อที่ในหน่วยความจำในปริมาณที่ต่างกันขึ้นกับชนิดของข้อมูล ข้อมูลพื้นฐานในภาษาซี มี 5 ชนิด คือ อักขระ (char)  จำนวนเต็ม(int) จำนวนจริง(float) จำนวนจริงละเอียด2เท่า(double) ไม่ให้ค่าใดๆ (void)นอกจากนี้เพื่อความสามารถในการใช้งานจึงมีการเพิ่มชนิดของตัวแปรขึ้นมาดังตาราง

ตารางแสดงชนิดของตัวแปร

คำประกาศชนิดของตัวแปร

เครื่องหมาย

จำนวนไบต์ที่ใช้

ค่าที่เป็นไปได้

char

คิดเครื่องหมาย

1

-128 ถึง 128

int

คิดเครื่องหมาย

2

-32768 ถึง 32767

short

คิดเครื่องหมาย

2

-32768 ถึง 32767

long

คิดเครื่องหมาย

4

-2147483648 ถึง 2147483647

unsigned char

ไม่คิดเครื่องหมาย

1

0  ถึง 255

unsigned int

ไม่คิดเครื่องหมาย

2

0 ถึง 65535

unsigned short

ไม่คิดเครื่องหมาย

2

0 ถึง 65535

unsigned long

ไม่คิดเครื่องหมาย

4

0 ถึง 4294967295

float

คิดเครื่องหมาย

4

3.4E-38 ถึง 3.4E+38

double

คิดเครื่องหมาย

8

1.7E-308 ถึง 1.7E+308

long double

คิดเครื่องหมาย

10

3.4E-4932 ถึง 1.1E+4932

การตั้งชื่อตัวแปร

  1. ต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมาย underscore เท่านั้น
  2. ตัวต่อไปจะเป็นตัวเลขหรือตัวอักษรหรือเครื่องหมาย underscore

      3. ชื่อมีความยาวไม่จำกัด(ตั้งยาวเกินได้ แต่ compiler จำแนกได้เพียง 31 ตัวแรกเท่านั้น ตั้งเกินจึงไม่มีประโยชน์)

      4.ห้ามตั้งชื่อตรงกับคำสงวนในภาษาซี ซึ่งมี 33 คำ ดังนี้
asm  auto  break  case  char const continue default  do double else enum extern float for goto if  int  long  register  return  short  signed  sizeof  static   struct  switch  typedef  union  unsigned  void  volatile  while

  1. ชื่อตัวแปรควรสื่อความหมายของตัวแปรเพื่อป้องกันความสับสนของการพิจารณาโปรแกรม

การประกาศตัวแปร

         ในการจะใช้งานตัวแปรจะต้องมีการประกาศชนิดและชื่อของตัวแปรนั้นก่อน โดยการประกาศตัวแปรใช้รูปแบบ คือ  ชนิดของตัวแปร ชื่อตัวแปรโดยถ้ามีตัวแปรชนิดเดียวอาจประกาศพร้อมกันโดยใช้ คอมมา คั่นระหว่างชื่อของตัวแปร ถ้ามีการกำหนดค่าให้ใช้เครื่องหมาย = และใช้เครื่องหมายแสดงการจบคำสั่งเมื่อสิ้นสุดคำสั่ง
ตัวอย่าง เช่น
char name, day = ‘S’ , surname[20] =”Kodedee”;
int  x=5 ,y,z[100];       float  a=5.00 ,b,c;       double  k=1.234567, m ;

ตัวดำเนินการ(operator)

          ตัวดำเนินการมีหลายประเภทลักษณะการดำเนินการแตกต่างกันไป ในที่นี้จะกล่าวถึงบางประเภทเท่านั้น

     ตัวดำเนินการทางคณิตศาสตร์ (mathematical operators)

สัญลักษณ์

การดำเนินการ

ตัวอย่าง

+

การบวก

2+5 ผลลัพธ์ 7

การลบ

7-4 ผลลัพธ์ 3

*

การคูณ

2*6 ผลลัพธ์ 12

/

การหาร

8/2 ผลลัพธ์ 4

%

การหารหาเศษ

9%4 ผลลัพธ์ 1

      ตัวดำเนินการความสัมพันธ์หรือการเปรียบเทียบ (relational operators)

สัญลักษณ์

การดำเนินการ

ตัวอย่าง

น้อยกว่า

2<3 ผลลัพธ์ จริง(1)

มากกว่า

2>3 ผลลัพธ์ เท็จ(false)(0)

<=

น้อยกว่าหรือเท่ากับ

2<= 3 ผลลัพธ์ จริง(true)

>=

มากกว่าหรือเท่ากับ

2>= 3 ผลลัพธ์ เท็จ(false)

==

เท่ากับ

4==4 ผลลัพธ์ จริง(true)

!=

ไม่เท่ากับ

2!= 2 ผลลัพธ์ เท็จ(false)

      ตัวดำเนินการตรรกะ (logical operators)

สัญลักษณ์

การดำเนินการ

ตัวอย่าง

&&

และ(AND)

(2<3)&&(3>1) ผลลัพธ์ จริง

||

หรือ(OR)

(2>3)||(4<1) ผลลัพธ์ เท็จ(false)

!

ไม่(NOT)

!(2> 3) ผลลัพธ์ จริง(true)

ตัวดำเนินการกำหนดค่า (assignment operators)

สัญลักษณ์

การดำเนินการ

ตัวอย่าง

=

กำหนดค่า(assignment)

a=2 ความหมายคือ กำหนดให้a มีค่าเป็น2

+=

การบวก(addition)

a+=b ความหมายคือ(a=a+b)

*=

การคูณ(multiplication)

a*=b ความหมายคือ(a=a*b)

-=

การลบ(subtraction)

a-=b ความหมายคือ(a=a-b)

/=

การหาร(division)

a/=b ความหมายคือ(a=a/b)

%=

การหารหาเศษ(remainder)

a%=b ความหมายคือ(a=a%b)

++

เพิ่มค่า(increment)

a++  หรือ ++a ความหมายคือ a=a+1

ลดค่า(decrement)

a–  หรือ –a ความหมายคือ a=a-1

         ลำดับการดำเนินการของตัวดำเนินการ  (operator precedence)

ลำดับที่

ตัวดำเนินการ

ลักษณะการทำงาน

1

( )     [ ]    .    ->

ซ้าย ไป ขวา

2

–    ~   |   *   &

ขวา ไป ซ้าย

3

++     —

ขวา ไป ซ้าย

4

*    /    %

ซ้าย ไป ขวา

5

+     –

ซ้าย ไป ขวา

6

<<>> 

ซ้าย ไป ขวา

7

<><=    >=

ซ้าย ไป ขวา

8

==         !=

ซ้าย ไป ขวา

9

&(bitwise AND)

ซ้าย ไป ขวา

10

^(bitwise XOR)

ซ้าย ไป ขวา

11

|(bitwise OR)

ซ้าย ไป ขวา

12

&&

ซ้าย ไป ขวา

13

||

ซ้าย ไป ขวา

14

?:

ซ้าย ไป ขวา

15

=    +=    -=    /=     %=

ขวา ไป ซ้าย

16

<<=    >>=

ขวา ไป ซ้าย

โดยตัวดำเนินการที่มีลำดับน้อยกว่าจะดำเนินก่อนตัวดำเนินการที่มีลำดับสูงกว่า เช่น

X =  2 + 5 * 3 จะมีลำดับการดำเนินการ คือ 
         ลำดับที่ 1        5 * 3(เพราะ  * มีลำดับเป็น 4  ส่วน + อยู่ลำดับ 5)
         ลำดับที่ 2      2 + 15
         ลำดับที่ 3   17 เป็นค่าของ X

เอกสารอ้างอิง

สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี (สสวท.) กระทรวงศึกษาธิการ(2553). เทคโนโลยีสารสนเทศและการสื่อสารชั้นมัธยมศึกษาปีที่ 4-6(หน้า 233-241).กรุงเทพฯ :

สกสค.ลาดพร้าว.ฝ่ายตำราวิชาการคอมพิวเตอร์. (2553). การเขียนโปรแกรมคอมพิวเตอร์ (ภาษาซี)(หน้า 67-79).

กรุงเทพฯ : ซีเอ็ดยูเคชั่น.อาณัติ  รัตนถิรกุล. (2553).สร้างระบบ e-Learning ด้วย moodle.กรุงเทพฯ : ซีเอ็ดยูเคชั่น.

Mrs.Rungrote. ตัวแปรในภาษาซี.https://sites.google.com/site/krurote/kar-kheiyn-porkaerm-phasa-si/ray-laxeiyd-menu-phasa-si/tawpaer-ni-phasa-si[ระบบออนไลน์]. (5พฤศจิกายน2557).