<< Go Back

      ตัวแปร (Variable) คือ การจองพื้นที่ในหน่วยความจำของคอมพิวเตอร์ สำหรับเก็บข้อมูลที่ต้องใช้ในการทำงานของโปรแกรม โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้นด้วย เพื่อความสะดวกในการเรียกใช้ข้อมูล ถ้าจะใช้ข้อมูลใดก็ให้เรียกผ่านชื่อของตัวแปรที่เก็บเอาไว้

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

การตั้งชื่อตัวแปรและค่าคงที่ในภาษา C จำเป็นต้องคำนึงถึงกฎเกณฑ์ต่างๆ ดังต่อไปนี้
      1. ต้องขึ้นต้นด้วยตัวอักษร A-Z หรือ a-z หรือเครื่องหมาย _(Underscore) เท่านั้น
      2. ภายในชื่อตัวแปรสามารถใช้ตัวอักษร A-Z หรือ a-z หรือตัวเลข 0-9 หรือเครื่องหมาย _ ได้
      3. ภายในชื่อตัวแปร ห้ามเว้นช่องว่าง หรือใช้สัญลักษณ์นอกเหนือจากข้อ 2
      4. ตัวอักษรพิมพ์เล็กและตัวพิมพ์ใหญ่มีความหมายแตกต่างกัน
      5. ควรตั้งชื่อตัวแปรให้สื่อความหมาย
      6. สามารถตั้งชื่อได้ยาวไม่จำกัด แต่จะใช้ตัวอักษรแค่ 31 ตัวแรกในการอ้างอิง
      7. ห้ามตั้งชื่อซ้ำกับคำสงวน (Reserved Word)

      คำสงวน (Reserved Word) หมายถึง คำที่สงวนไว้สำหรับเรียกใช้ตามวัตถุประสงค์ที่กำหนดโดยเฉพาะ เช่น คำที่ใช้ในคำสั่งควบคุม และชนิดของข้อมูล เป็นต้น ตัวอย่างคำสงวนของภาษาซี มีดังต่อไปนี้

 auto  default  float  register  struct
 break  do  for  return  switch
 case  double  goto  short  typefef
 char  else  if  signed  union
 const  enum  int  sizeof  void
 continue  extern  long  static  white

      หากต้องการตั้งชื่อตัวแปรให้ตรงกับคำสงวน ก็สามารถทำได้โดยการนำอักษรตัวพิมพ์ใหญ่ หรือเครื่องหมาย _ เข้ามาร่วม เช่น auto เป็น Auto , int   เป็น _int เป็นต้น

  ตัวอย่าง ของชื่อตัวแปร ที่สามารถนำมาใช้ตั้งชื่อได้ ยกตัวอย่างเช่น

  n   month   MONTH   _var1   length   EmpID
  days_in_year   Do   S001   first_one   salary   num1

  ตัวอย่าง  ของชื่อตัวแปร ที่ไม่สามารถนำมาใช้เป็นชื่อตัวแปรได้ ยกตัวอย่างเช่น

   int   do   123num   *variable   float   1 data

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

      การเขียนโปรแกรมคอมพิวเตอร์นั้น มีความจำเป็นอย่างยิ่งที่จะต้องจัดการกับข้อมูลประเภทต่าง ๆ เพื่อให้งานนั้นๆ สามารถจัดเก็บข้อมูลได้อย่างมีประสิทธิภาพและสะดวกต่อการค้นหาข้อมูล ดังนั้นในภาษาซี จึงแบ่งประเภทของข้อมูลออกได้เป็น 6 ประเภทด้วยกันคือ

1. ข้อมูลชนิดเลขจำนวนเต็ม (Integer) คือ เลขจำนวนเต็มทั่วไป ไม่ว่าจะเป็นเลขจำนวนเต็มบวก จำนวนเต็มศูนย์และจำนวนเต็มลบ ซึ่งเลขจำนวนเต็มเหล่านี้ สามารถนำไปคำนวณได้ ตัวอย่าง เช่น 100, 56, 0, -20 เป็นต้น ซึ่งภาษาซีจะแบ่งข้อมูลชนิดนี้ออกได้เป็น 3 ประเภท คือ
            - short
            - int
            - long

2. ข้อมูลชนิดตัวเลขทศนิยม (Float) คือ เลขทศนิยมชนิดคงที่ หรืออาจจะเป็นทศนิยม แบบไม่รู้จบ หรืออาจจะเป็นเลขทศนิยมที่เขียนในรูป E (หรือ e) ยกกำลัง ตัวเลขทศนิยมเหล่านี้ สามารถนำมาใช้ในการคำนวณได้ ตัวอย่าง เลขทศนิยมนี้ได้แก่ 20.25, -0.60, 58.96, 5.40e04 เป็นต้น แบ่งออกเป็น 3 ประเภท คือ
           - float
           - double
           - long double

3. ข้อมูลชนิดเลขฐานแปด (Octal) คือ เลขจำนวนเต็มที่ประกอบด้วยเลข 0, 1 ,2, 3, 4, 5, 6 และ 7 เมื่อนำมาใช้ในภาษาซี จะต้องเขียนเลขศูนย์นำหน้า เช่น 0123, 045 เป็นต้น ซึ่งเลขฐานแปด เหล่านี้สามารถนำมาใช้เพื่อการคำนวณได้

4. ข้อมูลชนิดเลขฐานสิบหก (Hexadecimal) คือ ตัวเลขประเภทหนึ่งที่ใช้ในระบบคอมพิวเตอร์ ซึ่งประกอบด้วย 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e และ f เวลาใช้งานในภาษาซีจะต้องเขียนด้วย 0x นำหน้าเพื่อให้รู้ว่าตัวเลขที่นำมาใช้งานนั้นเป็นฐานสิบหก

5. ข้อมูลชนิดตัวอักขระ (Character) เป็นตัวอักษรหรือสัญลักษณ์อื่น ๆ ที่มีความยาว เพียง 1 ตัวอักษรเท่านั้น ซึ่งอาจจะเป็นตัวอักษร A-Z, a-z, 0-9 หรือ #, @, $ และอื่น ๆ เป็นต้น โดยจะเขียนไว้ในเครื่องหมาย ' ' (Single Quote) ตัวอักขระทั้งหมดนั้น สามารถศึกษาหรือดู รายละเอียดเพิ่มเติมได้จากตารางรหัส ASCII 6. ข้อมูลชนิดข้อความ (String) เป็นข้อมูลแบบตัวอักษรที่มีความยาวมากกว่า 1 ตัวอักษร มาเรียงต่อกันเป็นข้อความ โดยที่ข้อความนั้นจะต้องถูกเขียนไว้ในเครื่องหมาย " " (Double Quote) ตัวอย่างเช่น "Phitsanulok", "Welcome" เป็นต้น

        ตัวแปรที่ประกาศใช้งานในโปรแกรม จำเป็นต้องถูกระบุชนิดข้อมูลเพื่อให้ทราบว่าตัวแปรเหล่านั้นจัดเก็บข้อมูลชนิดใดลงไป สำหรับในภาษา C จะมีข้อมูลพื้นฐานที่นิยมใช้ คือ

ชนิดข้อมูล ความหมาย
    char ชนิดข้อมูลแบบตัวอักษร (Character)
    int ชนิดข้อมูลแบบเลขจำนวนเต็ม (integer)
    float ข้อมูลชนิดตัวเลขจำนวนจริง(ทศนิยม) (read or floating point)
    double ข้อมูลชนิดเลขจำนวนจริง 2 เท่า (double precision float)

        นอกจากนี้ ยังสามารถเพิ่มเครื่องหมายนำหน้าให้กับชนิดข้อมูลเหล่านี้ได้อีก

signed unsigned long short

        โดยรายละเอียดของชนิดข้อมูลแต่ละประเภท ดังนี้

ชนิดข้อมูล ความหมาย ขนาด (ไบต์) ช่วงข้อมูล
char ตัวอักขระ หรือตัวอักษร 1 -128 to 127
unsigned char ตัวอักขระ ไม่รวมเครื่องหมาย 1 0 to 255
signed char ตัวอักขระ รวมเครื่องหมาย 1 -128 to 127
int เลขจำนวนเต็ม 2
4
-32,768 to 32,767
2,147,483,648 to 2,147,483,647
unsigned int เลขจำนวนเต็ม ไม่รวมเครื่องหมาย 2
4
0 to 65535
0 to 4294967
unsigned long int เลขจำนวนเต็มแบบยาว ไม่รวมเครื่องหมาย 4 0 to 65535
0 to 4294967
unsigned short int เลขจำนวนเต็มแบบสั้น ไม่รวมเครื่องหมาย 2 0 to 65535
signed int เลขจำนวนเต็ม รวมเครื่องหมาย 2 -32,768 to 32,767
short int เลขจำนวนเต็มแบบสั้น 2 -32,768 to 32,767
long int เลขจำนวนเต็มแบบยาว 4 2,147,483,648 to 2,147,483,647
signed short int เลขจำนวนเต็มแบบสั้น รวมเครื่องหมาย 2 -32,768 to 32,767
signed long int เลขจำนวนเต็มแบบยาว รวมเครื่องหมาย 4 2,147,483,648 to 2,147,483,647
float เลขจำนวนจริง มีทศนิยม 4 1.2E-38 to 3.4E+38
(6 decimal places)
doubled เลขจำนวนจริง 2 เท่า 8 2.3E-308 to 1.7E+308
(15 decimal places)
long doubled เลขจำนวนจริง 2 เท่าแบบยาว 10 2.3E-4932 to 1.1E+4932
(19 decimal places)

จากตาราง เป็นชนิดข้อมูลในภาษา C (ขนาดข้อมูลอาจไม่ตรงกัน ขึ้นอยู่กับแต่ละคอมไพเลอร์)

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

data_type variable_name;

                          โดยที่    data_type     คือ       ชนิดข้อมูล
                                        variable_name    คือ   ชื่อตัวแปร

ตัวอย่าง การประกาศตัวแปร

     char a; ประกาศตัวแปร a เก็บข้อมูลตัวอักษร 1 ตัว
     char lastname[50]; ประกาศตัวแปร lastname เก็บข้อความ 50 ตัว
     int num1; ประกาศตัวแปร num ให้มีชนิดข้อมูลเป็นเลขจำนวนเต็ม
     float total; ประกาศตัวแปร total ให้มีชนิดข้อมูลเป็นเลขจำนวนจริง

        การประกาศชนิดให้กับตัวแปร ควรคำนึงถึงความเหมาะสม ตัวอย่างเช่น หากต้องการใช้งานเลขจำนวนเต็มที่มีช่วงตัวเลขไม่กว้าง การเลือกใช้ short int จะเหมาะสมกว่า long int เพราะช่วยประหยัดหน่วยความจำ นอกจากนี้การสร้างสูตรคำนวณที่ประกอบไปด้วยตัวแปรชนิดข้อมูลที่ต่างกัน ตัวแปรที่ใช้เก็บผลลัพธ์จะต้องเป็นชนิดที่ใหญ่กว่าเสมอ เช่น นิพจน์ที่เป็น int มาคำนวณกับนิพจน์ที่เป็น float ตัวแปรที่ใช้เก็บผลลัพธ์ก็ต้องเป็น float

การกำหนดค่าให้กับตัวแปร

        การกำหนดค่าให้กับตัวแปร จะต้องกำหนดให้เป็นไปตามกฎและต้องสัมพันธ์กับชนิดข้อมูลที่ประกาศไว้ เช่น หากกำหนดตัวแปรเป็นชนิดข้อมูล int ค่าที่กำหนดให้กับตัวแปรก็จะต้องเป็นเลขจำนวนเต็มเท่านั้น ไม่สามารถกำหนดเป็นเลขทศนิยมหรือข้อความได้

1. การกำหนดค่าชนิดเลขจำนวนเต็ม
       1.ค่าตัวเลขจะต้องไม่มีทศนิยม
       2.สามารถเป็นได้ทั้งค่าบวกและค่าลบ
       3.สำหรับค่าบวกไม่จำเป็นต้องใส่เครื่องหมาย + นำหน้า
       4.ห้ามใช้เครื่องหมายคอมม่า , หรือช่องว่างกำกับระหว่างตัวเลข เช่น 14,560 ซึ่งถือว่าผิด
       5.ช่วงค่าตัวเลขจำนวนเต็ม จะอยู่ระหว่าง -2,147,483,647 ถึง 2,147,483,647
       6.สามารถใช้ Suffix ต่อท้ายค่าได้ เช่น เลขจำนวนเต็มแบบยาว ก็จะใช้อักษร L (ตัวพิมพ์เล็กหรือใหญ่ก็ได้) ต่อท้ายค่า ส่วนค่าที่เป็น unsign ก็จะใช้อักษร U ต่อท้าย และใช้ UL ต่อท้ายค่าที่เป็น unsigned long

ตัวอย่าง  การกำหนดค่าให้กับตัวแปร เพื่อจัดเก็บเลขจำนวนเต็มในรูปแบบต่างๆ

     n1 = 445; ประกาศตัวแปร a เก็บข้อมูลตัวอักษร 1 ตัว
     n2 = +557; ประกาศตัวแปร lastname เก็บข้อความ 50 ตัว
     n3 = -6687; ประกาศตัวแปร num ให้มีชนิดข้อมูลเป็นเลขจำนวนเต็ม
     n4 = 123456789L; ประกาศตัวแปร total ให้มีชนิดข้อมูลเป็นเลขจำนวนจริง
     n5 = 1234U; ชนิดข้อมูลเป็น unsigned int
     n6 = 123456789UL; ชนิดข้อมูลเป็น unsigned long int

2. การกำหนดค่าให้กับตัวแปรชนิดเลขจำนวนจริง
       1. ค่าตัวเลขสามารถมีจุดทศนิยมได้
       2. สามารถเป็นได้ทั้งค่าบวก และลบ
       3. ค่าบวกไม่จำเป็นต้องใส่เครื่องหมาย + นำหน้า
       4. สามารถกำหนดค่าแบบเอ็กซ์โปแนนต์ได้ ด้วยการใช้อักษร E ต่อท้ายค่า
       5. ค่าที่ถูกกำหนอเป็นค่าเอ็กซ์โปรแนนต์ สามารถเป็นได้ทั้งค่าบวกและลบ
       6. ช่วงของค่าตัวเลขชนิดจำนวนจริงเป็นไปตามชนิดข้อมูล ซึ่งอาจถูกกำหนดเป็น float, double หรือ long double
       7. สำหรับค่าจำนวนจริงชนิด double จะใช้ F ต่อท้ายค่า และใช้ L ต่อท้ายค่าที่กำหนดชนิดข้อมูล เป็น long double

ตัวอย่าง การกำหนดค่าให้กับตัวแปร เพื่อจัดเก็บเลขจำนวนเต็มในรูปแบบต่างๆ

    n1 = 40.9; ชนิดข้อมูลเป็น float
     n2 = +3.2E-5; ชนิดข้อมูลเป็น float exponent
     n3 = 4.3E8; ชนิดข้อมูลเป็น float exponent
     n4 = -0.2E+3 ชนิดข้อมูลเป็น float exponent
     n5 = 12.35F ชนิดข้อมูลเป็น double
     n6 = 12.34L; ชนิดข้อมูลเป็น long double

3. การกำหนดค่าชนิดตัวอักษร
       1. ค่าที่กำหนดจะต้องอักขระเพียงค่าเดียว และจะต้องอยู่ภายในเครื่องหมาย ' ' ไม่ใช่เครื่องหมาย " " ดังนั้นจึงต้องพึงระมัดระวังเป็นพิเศษด้วย
       2. ขนาดจำนวนตัวอักษรสูงสุด คือ 1 ตัวอักษรเท่านั้น
       3. ขนาดจำนวนตัวอักษรในภาษา C จะมองเป็น ASCII ที่ใช้แทนตัวอักขระต่างๆ เช่น ค่า 'A' จะมีค่าเท่ากับ 65 หรือค่า 'a' จะมีค่าเป็น 97

       ค่าคงที่ (Constant) เป็นตัวแปรที่ไม่สามารถเปลี่ยนแปลงค่าในภายหลังได้ ค่าของตัวแปรค่าคงที่จะต้องถูกกำหนดพร้อมกับการประกาศตัวแปรเสมอ ค่าคงที่สามารถเป็นข้อมูลประเภทต่างๆ เหมือนประเภทข้อมูลพื้นฐานได้
       ความแตกต่างระหว่างตัวแปรและค่าคงที่ได้แก่ ตัวแปรสามารถเปลี่ยนค่าไปมาได้ ในขณะที่ค่าคงที่หากถูกกำหนดค่าไว้แล้วจะไม่สามารถกำหนดค่าใหม่ได้ ตัวอย่างเช่น การกำหนดค่าคงที่แทนค่าของ Pi ซึ่งมีค่าโดยประมาณ 3.14159 คงไม่สะดวกแน่หากต้องพิมพ์ค่าตัวเลขนี้ลงไปทุกครั้งที่มีการอ้างถึง ดังนั้นในภาษา C จึงได้ประกาศค่าคงที่ขึ้นมาใช้งาน โดยต้องทำการนิยามและประกาศชื่อของตัวแทนค่าเหล่านั้น
       ค่าคงที่แบ่งออกเป็น 3 ประเภท คือ 1) Literal constant 2) Defined constant 3) Memory constant

1. ค่าคงที่ที่นำมาแสดงผลโดยตรง (Literal constant )

       เป็นค่าคงที่ ที่ถูกสั่งพิมพ์โดยตรง (ค่าตัวเลขหรือข้อความ) โดยไม่ได้นำค่าเหล่านั้นจัดเก็บไว้ในตัวแปร ดังนั้นค่าคงที่ประเภทนี้จึงไม่สามารถอ้างอิงหรือเรียกใช้งานซ้ำได้อีก

ตัวอย่าง  การใช้คำสั่ง printf() เพื่อแสดงข้อความที่เป็นค่าคงที่แบบ Literal
              printf ("Hello, Good morning \n");
              printf ("Pitchaporn Poonsawat ");

ตัวอย่าง  การใช้คำสั่ง printf() เพื่อแสดงข้อความและตัวเลขที่เป็นค่าคงที่แบบ Literal
              printf ("The number value of A is %d \n" , 10);

2. ค่าคงที่นิยามด้วย #define (Defined Constants)

       ภาษา C ได้จัดเตรียมพรีโปรเวสเซอร์ไดเร็กทีฟชื่อ #define สำหรับการกำหนดค่าคงที่โดยการประกาศใช้งานไว้ในส่วนของเฮดเดอร์ไฟล์ (Header File) โดยมีรูปแบบการประกาศใช้งานค่าคงที่ดังนี้

#define ConstantsName value

                          โดยที่ :
                                    #define   คือ   พรีโปรเวสเซอร์ไดเร็กทีฟ
                                    ConstantsName   คือ   ชื่อของค่าคงที่ นิยมใช้อักษรตัวพิมพ์ใหญ่
                                    value   คือ   ค่าที่ต้องการกำหนดให้ค่าคงที่

ตัวอย่าง   การกำหนดค่าคงที่ด้วย #define
                          #define VAT 0.07
                          #define TXT “Hello”
                          #define NEWLINE ‘\n’
                          #define ONE 1
                          #define PI 3.141159

3. ค่าคงที่ที่เก็บไว้ในตัวแปร (Memory Constants)

       เป็นการกำหนดค่าคงที่ในรูปแบบของตัวแปร ซึ่งจะเขียนอยู่ในฟังก์ชัน main() โดยมีรูปแบบการประกาศใช้งานค่าคงที่ดังนี้

#define ConstantsName value

                          โดยที่ :

                                    const คือ การประกาศว่าตัวแปรที่กำหนดต่อไปนี้เป็นค่าคงที่
                                    data_type คือ ชนิดข้อมูล
                                    variable_name คือ ชื่อตัวแปรที่ใช้เก็บค่าคงที่
                                    value คือ ค่าที่ต้องการกำหนดให้เป็นค่าคงที่

ตัวอย่าง การกำหนดค่าคงที่แบบเก็บไว้ในตัวแปร
               const int count = 20; //กำหนดให้ count เป็นตัวคงที่ชนิด int และเก็บค่า 20
               const float PI = 3.14159; //กำหนดให้ PI เป็นตัวคงที่ชนิด float และเก็บค่า 3.14159

ตัวอย่าง การกำหนดค่าคงที่และการนำไปใช้งาน

หน้าจอแสดงผลลัพธ์ : การหาพื้นที่วงกลม

                                      

       การประกาศตัวแปร คือการจองเนื้อที่ในหน่วยความจำสำหรับเก็บค่าบางอย่างพร้อมทั้งกำหนดชื่อเรียกแทนหน่วยความจำในตำแหน่งนั้น เพื่อให้สะดวกในการเข้าถึงค่าที่เก็บอยู่ในหน่วยความจำดังกล่าว

รูปแบบการประกาศค่าตัวแปร

         ตัวแปรทุกๆตัวที่ใช้งานในโปรแกรม จำเป็นจะต้องประกาศก่อนใช้งานเสมอ ภาษา C สามารถประกาศตัวแปรได้หลายรูปแบบด้วยกัน คือ

1. การประกาศตัวแปรที่ละตัว ที่ละบรรทัด ตัวอย่างเช่น

    int num; // สร้างตัวแปรชื่อ num สำหรับเก็บข้อมูลจำนวนเต็ม
    int n ; // สร้างตัวแปรชื่อ n สำหรับเก็บข้อมูลจำนวนเต็ม
    float PI; // สร้างตัวแปรชื่อ num สำหรับเก็บข้อมูลชนิดทศนิยม
    char data; // สร้างตัวแปรชื่อ data สำหรับเก็บข้อมูลชนิดตัวอักษร
     char name[50]; // สร้างตัวแปรชื่อ name สำหรับเก็บข้อมูลชนิดตัวอักษร ขนาดไม่เกิน 50

2. การประกาศตัวแปรหลายๆตัว พร้อมกัน (Multiple Declaration) เป็นการประกาศตัวแปรที่มีชนิดข้อมูลเหมือนกันภายในบรรทัดเดียวกัน โดยใช้เครื่องหมายคอมม่า ,  คั่นระหว่างชื่อตัวแปรแต่ละตัว ตัวอย่างเช่น
         int lower, upper, step;
        char name, surname, nickname;

3. การประกาศตัวแปรพร้อมกำหนดค่าเริ่มต้น เป็นการประกาศตัวแปร พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปรภายในบรรทัดนั้นๆ ตัวอย่างเช่น

    int num = 10; // สร้างตัวแปรชื่อ num สำหรับเก็บข้อมูลจำนวนเต็ม มีค่าเท่ากับ 10
    float PI = 3.14; // สร้างตัวแปรชื่อ PI สำหรับเก็บข้อมูลชนิดทศนิยม มีค่าเท่ากับ 3.14
    char font = 'A' ; // สร้างตัวแปรชื่อ font สำหรับเก็บข้อมูลชนิดตัวอักษร มีค่าเริ่มต้น คือ A

4. ประกาศตัวแปรชนิดค่าคงที่ เป็นการประกาศตัวแปรเพื่อจัดเก็บค่าคงที่ เป็นค่าในหน่วยความจำที่มีค่าคงที่ตลอดโปรแกรม ถ้าในโปรแกรมส่วนใดเรียกชื่อที่ประกาศไว้ก็จะได้ข้อมูลตามที่กำหนด จะใช้คำว่า const นำหน้า
         const int Day = 7;
         const int month = 12;
         const float PI = 3.1418926;
         const char name = 'A';         // ให้ค่ารหัส ASCII ของ A คือ 65
         const char ch = 'B';              // ให้ค่ารหัส ASCII ของ B คือ 66


         ตัวดำเนินการจะถูกใช้กับตัวแปรและค่าคงที่ในการดำเนินการบางอย่าง เช่น การดำเนินการทางคณิตศาสตร์ ในภาษา C มีตัวดำเนินการประเภทต่างๆ ที่ทำหน้าที่แตกต่างกันไป ยกตัวอย่างดังต่อไปนี้
         นิพจน์ (Expression) คือ การนำค่าคงที่หรือตัวแปรมาเชื่อมต่อกัน ด้วยเครื่องหมายทางคณิตศาสตร์
         โอเปอแรนด์ (Operand) หรือตัวถูกดำเนินการ จะเป็นค่าตัวเลข ซึ่งอาจเป็นได้ทั้งตัวแปรหรือค่าคที่ เมื่อนำตัวดำเนินการและโอเปอแรนด์ประกอบเข้าด้วยกัน เช่น  a*b/c  จะเรียกว่า นิพจน์

1. ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operator)
         ใช้สำหรับกระทำการคำนวณทางคณิตศาสตร์ เช่น บวก ลบ คูณ หาร เปอร์เซ็นต์ โดยจะนำข้อมูลตัวหนึ่งไปกระทำกับอีกตัวหนึ่ง โดยใช้ผลลัพธ์เป็นตัวเลขทางคณิตศาสตร์ แบ่งออกได้ดังต่อไปนี้

         ตารางแสดงตัวดำเนินการเลขคณิต

ตัวดำเนินการ กระบวนการ ข้อมูลที่กระทำ ข้อมูลผลลัพธ์ ตัวอย่าง
+   การบวก (addition)  จำนวนเต็ม,จำนวนจริง  จำนวนเต็ม,จำนวนจริง x + y
-   การลบ (subtraction)  จำนวนเต็ม,จำนวนจริง  จำนวนเต็ม,จำนวนจริง x - y
*   การคูณ (multiplication)  จำนวนเต็ม,จำนวนจริง  จำนวนเต็ม,จำนวนจริง x * y
/   การหาร (division)  จำนวนเต็ม,จำนวนจริง  จำนวนจริง x / y
%   การหารเอาเศษ (modulus)  จำนวนเต็ม  จำนวนเต็ม x % y

ตัวอย่าง   การใช้ตัวดำเนินการทางคณิตศาสตร์

                  

        หน้าจอแสดงผลลัพธ์ :

                  

2. ตัวดำเนินการยูนารี
         การใช้เครื่องหมายลบนำหน้าค่าตัวแปร จะทำให้ค่าถูกเปลี่ยนเป็นค่าติดลบโดยทันที เช่น -10 , -x (มิใช่ตัวดำเนินการลบแต่อย่างใด) ตัวอย่างเช่น 100 เมื่อนำตัวดำเนินการยูนารีติดลบนำหน้าค่าดังกล่าว ค่านั้นก็จะถูกเปลี่ยนเป็นค่าติดลบทันที ซึ่งก็คือ -100

ตัวอย่าง   การใช้ตัวดำเนินการยูนารี
                  -743        -OX7FF       -0.2
                  -root1     -(x+y) -3    *(x+y)

         ตัวดำเนินการยูนารีสามารถนำมาใช้กับโอเปอแรนด์(ตัวถูกดำเนินการ) ที่เป็นค่าคงที่แบบเลขจำนวนเต็ม เลขจำนวนจริง ตัวแปร และนิพจน์ก็ได้ นอกจากนี้ในภาษา C ยังมีตัวดำเนินการยูนารีตัวอื่นๆอีก เช่น ตัวดำเนินการเพิ่มค่า (Increment Operator) ที่ใช้เครื่องหมาย ++ และตัวดำเนินการลดค่า (Decrement Operator) ที่ใช้เครื่องหมาย -- ซึ่งหมายถึง การเพิ่มค่าขึ้นทีละหนึ่งหรือการลดค่าลงทีละหนึ่ง โดยสามารถกำกับไว้หน้าตัวแปรหรือหลังตัวแปรก็ได้
         ++i , i++ หมายถึง i = i + 1    ,     -- i , i-- หมายถึง i = i - 1

ตัวดำเนินการ นิพจน์ ความหมาย
  ++ (prefix)   ++a   เพิ่มค่าขึ้นอีกหนึ่งให้กับ a ก่อน แล้วจึงนำค่าใหม่ของ a ในนิพจน์นี้ไปใช้
  ++ (postfix)   a++   นำค่าปัจจุบันของ a ในนิพจน์นี้ไปใช้งานก่อนแล้วจึงเพิ่มค่า a ขึ้นอีกหนึ่ง
  -- (prefix)   --b   ลดค่าลงอีกหนึ่งให้กับ b ก่อน แล้วจึงนำค่าใหม่ของ b ในนิพจน์นี้ไปใช้
  -- (postfix)   b--   นำค่าปัจจุบันของ b ในนิพจน์นี้ไปใช้งานก่อนแล้วจึงลดค่า b ขึ้นอีกหนึ่ง

  ตัวอย่าง การทำงานของตัวดำเนินการยูนารี

                                

        หน้าจอแสดงผลลัพธ์ :

                                

 3. ตัวดำเนินการเปรียบเทียบและตรรกะ (Comparison and Logical Operators)
         การเปรียบเทียบ หมายถึง การหาว่าเมื่อนำค่าที่อยู่ทางด้านซ้ายของเครื่องหมายกับค่าที่อยู่ทางขวา ของเครื่องหมายเปรียบเทียบ นำมาเปรียบเทียบกันแล้วจะได้ผลลัพธ์เป็นจริงหรือเท็จ ซึ่งในแต่ละกรณีเมื่อ เปรียบเทียบกันแล้ว จะได้ค่าเป็นจริงหรือเป็นเท็จเพียงค่าเดียวเท่านั้น ตัวดำเนินการเปรียบเทียบมักจะใช้กับคำสั่งตรวจสอบเงื่อนไข if และคำสั่งวนซ้ำ for while เพื่อควบคุมการทำงานของโปรแกรม

ตัวดำเนินการ ความหมาย ตัวอย่าง
<     น้อยกว่า         a < b
<=     น้อยกว่าหรือเท่ากับ         a <= b
>     มากกว่า        a > b
>=     มากกว่าหรือเท่ากับ        a >= b
==     เท่ากับ        a == b
!=     ไม่เท่ากับ        a != b

     ผลลัพธ์จะมี 2 กรณีคือ ถ้าผลลัพธ์ถูกต้องหรือเป็นจริง (True) จะมีค่าเป็น 1 ถ้าผลลัพธ์ผิดหรือเป็นเท็จ (False) จะมีค่าเป็น 0 ซึ่งค่าตรรกะดังกล่าวจะมีชนิดข้อมูลเป็นเลขจำนวนเต็ม

  ตัวอย่าง  การใช้ตัวดำเนินการเปรียบเทียบและตรรกะ

                                

        หน้าจอแสดงผลลัพธ์ :

                                

      นอกจากนี้ ยังสามารถนำตัวเชื่อมมาใช้ร่วมกันได้ ซึ่งประกอบด้วย

ตัวเชื่อม ความหมาย ตัวอย่าง
&&        และ (and)        a && b
||        หรือ (or)        a || b
!        ไม่ใช่ (not)        !a

      ผลลัพธ์ที่ได้ จะเป็นไปตามค่าความเป็นจริง ดังนี้

โอเปอแรนด์ ผลลัพธ์
1 1 1 1 0
1 0 0 1 0
0 1 0 1 1
0 0 0 0 1

4. ตัวดำเนินการระดับบิต (Bitwise Operators)
   ภาษา C ยังมีตัวดำเนินการระดับบิต เพื่อใช้จัดการข้อมูลภายในเครื่องเหมือนกับภาษาระดับต่ำ จะนำข้อมูลสองค่ามาเปรียบเทียบกัน โดยข้อมูลทั้งสองค่าจะต้องเป็นข้อมูลประเภทเดียวกัน

ตัวดำเนินการ ความหมาย
&    บิตไวส์ AND
|    บิตไวส์ OR
^    บิตไวส์ XOR (exclusive OR)
~    คอมพลีเมนต์
>>    เลื่อนบิตไปทางขวา
<<    เลื่อนบิตไปทางซ้าย

   ผลลัพธ์ที่ได้จะได้จากตัวดำเนินการระดับบิต จะเป็นไปตามตารางค่าความจริง ดังนี้

โอเปอแรนด์ ผลลัพธ์
a b a & b a | b a ^ b ~a
1 1 1 1 0 0
1 0 0 1 1 0
0 1 0 1 1 1
0 0 0 0 1 1

5. ตัวดำเนินการกำหนดค่า (Assignment operator)

      ในภาษา C มีหลายวิธีในการกำหนดค่าให้กับตัวแปร ซึ่งปกติตัวดำเนินการกำหนดค่ามักจะใช้เครื่องหมาย = (เท่ากับ) และการกำหนดค่านิพจน์ก็จะใช้เครื่องหมาย + (บวก) เช่นกัน สำหรับรูปแบบของตัวดำเนินการกำหนดค่า สามารถเขียนได้ตามรูปแบบดังนี้

variable_name = expression

                  โดย :
                           variable_name   หมายถึง   ชื่อตัวแปร
                           expression  หมายถึง  นิพจน์ ซึ่งสามารถเป็นค่าคงที่ ตัวแปร รวมถึงสูตรทางคณิตศาสตร์ที่ซับซ้อน

    ตัวอย่าง : การกำหนดค่านิพจน์ด้วยตัวดำเนินการกำหนดค่า
                    a = 3;
                    x = y;
                    delta = 0.001;
                    sum = a + b;
                    area = length * width;

    ตัวอย่าง : การกำหนดค่าให้นิพจน์และผลลัพธ์ที่ได้ โดยกำหนดค่าให้ตัวแปร a เป็นข้อมูลเลขจำนวนเต็ม

นิพจน์ ผลลัพธ์
     a = 5.5 5
     a = -5.5 5
     a = 10.25 10

 ตัวอย่าง : การกำหนดค่าให้นิพจน์และผลลัพธ์ที่ได้
                  โดยกำหนดให้ a และ b มีชนิดข้อมูลเป็นเลขจำนวนเต็ม และตัวแปร b ถูกกำหนดให้มีค่าเท่ากับ 5

นิพจน์ ผลลัพธ์
          a = b 5
          a = b / 2 2
          a = 2 * b / 2 5
         a = 2 * (b / 2) 4

               นอกจากนี้ สามารถกำหนดค่าให้กับตัวแปรหลายๆ ตัวในคราวเดียวกันได้ ดังตัวอย่างต่อไปนี้

              • ประกาศตัวแปร a และ b โดยกำหนดตัวแปร a และ b มีค่าเท่ากับ 10
                           a = b = 10;

              • ประกาศตัวแปรพร้อมๆ กันหลายตัว และกำหนดค่าเริ่มต้นของตัวแปรทั้งหมดเป็น 10
                           int a, b, c; a = b = c = 10;

              • รูปแบบที่ผิดของประกาศตัวแปรพร้อมๆ กันหลายตัว
                           int a = b = c = 10;

             • นิพจน์เกี่ยวกับการสะสมค่า
                          total = total + sub_total      total += sub_total

6. ตัวดำเนินการเงื่อนไข (Conditional Operator) จะนำไปใช้ในการทดสอบค่านิพจน์ทางตรรกะว่า จริงหรือเท็จ รูปแบบดังนี้

expression1? expression2 : expression3

                      โดยที่
                                  expression 1   หมายถึง   นิพจน์เงื่อนไขที่สร้างขึ้น
                                  expression 2   หมายถึง   นิพจน์ กรณีเป็นจริง
                                  expression 3   หมายถึง   นิพจน์ กรณีเป็นเท็จ

                      ตัวอย่างเช่น
                                  result = (i < 0) ? 0 : 100;

             จากตัวดำเนินการเงื่อนไขข้างต้น อธิบายได้ว่า :
              i มีค่าน้อยกว่า 0 จริงหรือไม่
                         - ถ้า i มีค่าน้อยกว่า 0 เป็นจริง, result จะถูกกำหนดค่าเป็น 0
                         - ถ้า i มีค่าน้อยกว่า 0 เป็นเท็จ, result จะถูกกำหนดค่าเป็น 100

             ซึ่งหากสร้างเงื่อนไขด้วยประโยคคำสั่ง if ก็จะต้องเขียนเป็น
                         if (i < 0)
                               result = 0;
                         else
                               result = 100;

          หมายความว่า :
          ถ้า i มีค่าน้อยกว่า 0 แล้ว
                   - กรณีเป็นจริง ตัวแปร result จะถูกกำหนดค่าเป็น 0
                   - กรณีเป็นเท็จ ตัวแปร result จะถูกกำหนดค่าเป็น 100

7. ตัวดำเนินการบอกขนาดข้อมูล (sizeof Operator)
       ตัวดำเนินการประเภทนี้ จะทำให้เราทราบว่า ชนิดข้อมูลแต่ละชนิดที่มีอยู่ในเครื่องมีขนาดเท่าใด ทั้งนี้ชนิดข้อมูลจะมีขนาดเท่าใดนั้น จะสามารถทราบได้จากตัวดำเนินการ sizeof ซึ่งมีรูปแบบการเขียนดังนี้

sizeof (expression)

                     โดย :
                     expression หมายถึง ชนิดข้อมูลหรือตัวแปร

ตัวอย่าง : การตรวจสอบขนาดของชนิดข้อมูลประเภทต่างๆ โดยใช้ตัวดำเนินการบอกขนาดข้อมูล

             หน้าจอแสดงผลลัพธ์ :

                              

<< Go Back