ใบความรูที่ 6
                                                       
                                     เรื่อง ตัวแปรกับชนิดของขอมูล

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

ชนิดของขอมูล
        ภาษาซีเปนอีกภาษาหนึ่งทีมชนิดของขอมูลใหใชงานหลายอยางดวยกัน ซึ่งชนิดของขอมูลแตละอยางมี
                                  ่ ี
ขนาดเนื้อทีที่ใชในหนวยความจําที่แตกตางกัน และเนื่องจากการที่มีขนาดที่แตกตางกันไป ดังนั้นในการเลือกใช
           ่
งานประเภทขอมูลก็ควรจะคํานึงถึงความจําเปนในการใชงานดวย สําหรับประเภทของขอมูลมีดังนี้คือ

                    ขนาดความ
         ชนิด                        ชวงของคา                          การใชงาน
                      กวาง
 char                 8 บิต ASCII character (-128 ถึง 127) เก็บขอมูลชนิดอักขระ
 unsigned char         8 บิต     0-255                                 เก็บขอมูลอักขระแบบไมคิดเครื่องหมาย
 int                  16 บิต     -32768 ถึง 32767                      เก็บขอมูลชนิดจํานวนเต็ม
 long                 32 บิต     -2147483648 ถึง 2147483649 เก็บขอมูลชนิดจํานวนเต็มแบบยาว
                                 3.4E-38 ถึง 3.4E+38 หรือ
 float                32 บิต                                           เก็บขอมูลชนิดเลขทศนิยม
                                 ทศนิยม 6
                                 1.7E-308 ถึง 1.7E+308 หรือ
 double               64 บิต                                           เก็บขอมูลชนิดเลขทศนิยม
                                 ทศนิยม 12
                                                                       เก็บขอมูลชนิดจํานวนเต็ม ไมคิด
 unsigned int         16 บิต     0 ถึง 65535
                                                                       เครื่องหมาย
                                                                       เก็บขอมูลชนิดจํานวนเต็มแบบยาว ไมคิด
 unsigned long        32 บิต     0 ถึง 4294967296
                                                                       เครื่องหมาย




                                          - ตัวแปรกับชนิดของขอมูล -
-49-
รูปแบบในการประกาศตัวแปรในภาษา C
        การสรางตัวแปรขึ้นมาใชงานจะเรียกวา การประกาศตัวแปร (Variable Declaration) โดยเขียนคําสั่งให
ถูกตองตามแบบการประกาศตัวแปร แสดงดังนี้

        type name;

        type : ชนิดของตัวแปร
        name : ชื่อของตัวแปร ซึงตองตั้งใหถูกตองตามหลักของภาษา C
                               ่

        การเขียนคําสังเพื่อประกาศตัวแปร สวนใหญแลวจะเขียนไวในสวนหัวของโปรแกรมกอนฟงกชัน main ซึ่ง
                     ่
การเขียนไวในตําแหนงดังกลาว จะทําใหตัวแปรเหลานันสามารถเรียกใชจากที่ใดก็ไดในโปรแกรม ดังตัวอยาง
                                                   ้

    #include <stdio.h>
    int num;                           สรางตัวแปรชือ num เพื่อเก็บขอมูลชนิดจํานวนเต็ม
                                                    ่
    float h;                           สรางตัวแปรชือ h เพื่อเก็บขอมูลชนิดเลขทศนิยม
                                                      ่
    int main()
    {
      printf("Enter number : ")
      scanf("%d",&num);
      printf("Enter height : ");
      scanf("%f",&h);
      printf("Thank you");
      getch();
      return 0;
    }




                                        - ตัวแปรกับชนิดของขอมูล -
-50-
หลักการตั้งชือตัวแปร
             ่
        ในการประกาศสรางตัวแปรตองมีการกําหนดชื่อ ซึ่งชื่อนั้นไมใชวาจะตั้งใหส่ือความหมายถึงขอมูลที่เก็บ
อยางเดียว โดยไมคํานึงถึงอยางอื่น เนื่องจากภาษา 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            ผิดหลักการ เนื่องจากเปนคําสงวน




                                            - ตัวแปรกับชนิดของขอมูล -
-51-
ตัวแปรสําหรับขอความ
        ในภาษา C ไมมีการกําหนดชนิดของตัวแปรสําหรับขอความโดยตรง แตจะใชการกําหนดชนิดของตัวแปร
อักขระ (char) รวมกับการกําหนดขนาดแทน และจะเรียกตัวแปรสําหรับเก็บขอความวา ตัวแปรสตริง (string)
รูปแบบการประกาศตัวแปรสตริงแสดงไดดงนี้
                                    ั

char name[n] = "str";
name         ชื่อของตัวแปร
n            ขนาดของขอความ หรือจํานวนอักขระในขอความ
str          ขอความเริ่มตนที่จะกําหนดใหกับตัวแปรซึงตองเขียนไวภายในเครื่องหมาย " "
                                                     ่

ตัวอยางการประกาศตัวแปรสําหรับเก็บขอความ แสดงไดดังนี้

char name[5] = "kwan" ;     สรางตัวแปร name สําหรับเก็บ ขอความ kwan ซึ่งมี 4 ตัวอักษร ดังนัน name ตองมีขนาด 5
                                                                                               ้
char year[5] = "2549";      สรางตัวแปร year สําหรับเก็บ ขอความ 2549 ซึ่งมี 4 ตัวอักษร ดังนัน year ตองมีขนาด 5
                                                                                             ้
                            สรางตัวแปร product_id สําหรับเก็บ ขอความ A01 ซึ่งมี 3 ตัวอักษร ดังนัน product_id
                                                                                                  ้
char product_id[4] = "A01";
                            ตองมีขนาด 4




                                          - ตัวแปรกับชนิดของขอมูล -

ตัวแปรกับชนิดของข้อมูล

  • 1.
    ใบความรูที่ 6  เรื่อง ตัวแปรกับชนิดของขอมูล ตัวแปรในภาษาซี ตัวแปร (Variable) คือ การจองพื้นที่ในหนวยความจําของคอมพิวเตอรสําหรับเก็บขอมูลที่ตองใชในการ ทํางานของโปรแกรม โดยมีการตั้งชื่อเรียกหนวยความจําในตําแหนงนั้นดวย เพื่อความสะดวกในการเรียกใชขอมูล ถาจะใชขอมูลใดก็ใหเรียกผานชื่อของตัวแปรที่เก็บเอาไว  ชนิดของขอมูล ภาษาซีเปนอีกภาษาหนึ่งทีมชนิดของขอมูลใหใชงานหลายอยางดวยกัน ซึ่งชนิดของขอมูลแตละอยางมี ่ ี ขนาดเนื้อทีที่ใชในหนวยความจําที่แตกตางกัน และเนื่องจากการที่มีขนาดที่แตกตางกันไป ดังนั้นในการเลือกใช ่ งานประเภทขอมูลก็ควรจะคํานึงถึงความจําเปนในการใชงานดวย สําหรับประเภทของขอมูลมีดังนี้คือ ขนาดความ ชนิด ชวงของคา การใชงาน กวาง char 8 บิต ASCII character (-128 ถึง 127) เก็บขอมูลชนิดอักขระ unsigned char 8 บิต 0-255 เก็บขอมูลอักขระแบบไมคิดเครื่องหมาย int 16 บิต -32768 ถึง 32767 เก็บขอมูลชนิดจํานวนเต็ม long 32 บิต -2147483648 ถึง 2147483649 เก็บขอมูลชนิดจํานวนเต็มแบบยาว 3.4E-38 ถึง 3.4E+38 หรือ float 32 บิต เก็บขอมูลชนิดเลขทศนิยม ทศนิยม 6 1.7E-308 ถึง 1.7E+308 หรือ double 64 บิต เก็บขอมูลชนิดเลขทศนิยม ทศนิยม 12 เก็บขอมูลชนิดจํานวนเต็ม ไมคิด unsigned int 16 บิต 0 ถึง 65535 เครื่องหมาย เก็บขอมูลชนิดจํานวนเต็มแบบยาว ไมคิด unsigned long 32 บิต 0 ถึง 4294967296 เครื่องหมาย - ตัวแปรกับชนิดของขอมูล -
  • 2.
    -49- รูปแบบในการประกาศตัวแปรในภาษา C การสรางตัวแปรขึ้นมาใชงานจะเรียกวา การประกาศตัวแปร (Variable Declaration) โดยเขียนคําสั่งให ถูกตองตามแบบการประกาศตัวแปร แสดงดังนี้ type name; type : ชนิดของตัวแปร name : ชื่อของตัวแปร ซึงตองตั้งใหถูกตองตามหลักของภาษา C ่ การเขียนคําสังเพื่อประกาศตัวแปร สวนใหญแลวจะเขียนไวในสวนหัวของโปรแกรมกอนฟงกชัน main ซึ่ง ่ การเขียนไวในตําแหนงดังกลาว จะทําใหตัวแปรเหลานันสามารถเรียกใชจากที่ใดก็ไดในโปรแกรม ดังตัวอยาง ้ #include <stdio.h> int num; สรางตัวแปรชือ num เพื่อเก็บขอมูลชนิดจํานวนเต็ม ่ float h; สรางตัวแปรชือ h เพื่อเก็บขอมูลชนิดเลขทศนิยม ่ int main() { printf("Enter number : ") scanf("%d",&num); printf("Enter height : "); scanf("%f",&h); printf("Thank you"); getch(); return 0; } - ตัวแปรกับชนิดของขอมูล -
  • 3.
    -50- หลักการตั้งชือตัวแปร ่ ในการประกาศสรางตัวแปรตองมีการกําหนดชื่อ ซึ่งชื่อนั้นไมใชวาจะตั้งใหส่ือความหมายถึงขอมูลที่เก็บ อยางเดียว โดยไมคํานึงถึงอยางอื่น เนื่องจากภาษา 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 ผิดหลักการ เนื่องจากเปนคําสงวน - ตัวแปรกับชนิดของขอมูล -
  • 4.
    -51- ตัวแปรสําหรับขอความ ในภาษา C ไมมีการกําหนดชนิดของตัวแปรสําหรับขอความโดยตรง แตจะใชการกําหนดชนิดของตัวแปร อักขระ (char) รวมกับการกําหนดขนาดแทน และจะเรียกตัวแปรสําหรับเก็บขอความวา ตัวแปรสตริง (string) รูปแบบการประกาศตัวแปรสตริงแสดงไดดงนี้ ั char name[n] = "str"; name ชื่อของตัวแปร n ขนาดของขอความ หรือจํานวนอักขระในขอความ str ขอความเริ่มตนที่จะกําหนดใหกับตัวแปรซึงตองเขียนไวภายในเครื่องหมาย " " ่ ตัวอยางการประกาศตัวแปรสําหรับเก็บขอความ แสดงไดดังนี้ char name[5] = "kwan" ; สรางตัวแปร name สําหรับเก็บ ขอความ kwan ซึ่งมี 4 ตัวอักษร ดังนัน name ตองมีขนาด 5 ้ char year[5] = "2549"; สรางตัวแปร year สําหรับเก็บ ขอความ 2549 ซึ่งมี 4 ตัวอักษร ดังนัน year ตองมีขนาด 5 ้ สรางตัวแปร product_id สําหรับเก็บ ขอความ A01 ซึ่งมี 3 ตัวอักษร ดังนัน product_id ้ char product_id[4] = "A01"; ตองมีขนาด 4 - ตัวแปรกับชนิดของขอมูล -