ใบความรู้

ใบความรู้ที่ 4.2

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

 

          ในการเขียนโปรแกรมด้วยภาษาซีนั้น หากมีการประกาศตัวแปรขึ้นมาใช้งานแล้ว ผู้เขียนโปรแกรมจะต้องระบุชนิดข้อมูลให้กับตัวแปรแต่ละตัวด้วย ใบความรู้นี้จะอธิบายเกี่ยวกับ ตัวแปร และชนิดข้อมูลต่างๆ

 

ตัวแปร (Variables)

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

 

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

          กฎการตั้งชื่อนี้หมายรวมไปถึงการตั้งชื้อให้กับฟังก์ชัน ค่าคงที่ และชื่ออื่น ๆ ในภาษาซีด้วย โดยมีข้อกำหนดดังนี้

  1. 1.ชื่อจะต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมาย Underscore (_) เท่านั้น จะขึ้นต้นด้วยตัวเลขหรือเครื่องหมายอื่นไม่ได้ แต่ภายในชื่อสามารถประกอบด้วยตัวอักษร เครื่องหมาย Underscore หรือ ตัวเลขก็ได้ เช่น TEST_Amount, Love1, g1_g2, _FirstName เป็นต้น
  2. 2.ชื่อจะประกอบด้วยอักขระพิเศษไม่ได้ เช่น $, @, #, &
  3. 3.ภายในชื่อมีช่องว่างหรือแท็บไม่ได้
  4. 4.ชื่อในภาษาซีเป็นแบบ Case-Sensitive คือ ตัวอักษรตัวใหญ่และตัวอักษรตัวเล็กจะถือเป็นคนละตัวกัน เช่น Test, test, tEsT จะถือว่าชื่อที่ตั้งขึ้นนี้เป็นคนละชื่อกัน
  5. 5.ชื่อที่ตั้งขึ้นต้องไม่ซ้ำกับคำสงวน (Reserved Word) ในภาษาซี ซึ่งมีดังนี้

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

 

 

 

 

ข้อควรจำ : ในการตั้งชื่อใด ๆ นั้น ควรตั้งชื่อให้สื่อความหมาย เพื่อให้สามารถรู้ได้ว่าชื่อนั้นหมายถึงอะไร เนื่องจากการเขียนโปรแกรมที่มีขนาดใหญ่ หรือมีผู้ร่วมทำงานหลายคน จะสามารถสื่อความหมายให้เข้าใจตรงกันได้นั่นเอง

 

ชนิดของข้อมูล (Data Type)

ชนิดของข้อมูล คือ สิ่งที่ใช้กำหนดลักษณะและขอบเขตของข้อมูลนั้นๆ โดยข้อมูลที่มีชนิดของข้อมูลแตกต่างกัน ก็จะเก็บข้อมูลได้ในลักษณะที่ต่างกัน และขอบเขตของข้อมูลที่เก็บได้ก็จะไม่เท่ากัน ซึ่งในภาษาซีแบ่งชนิดข้อมูลออกเป็น 4 แบบ ได้แก่

ชนิดข้อมูลแบบ void

ชนิดข้อมูลแบบ ตัวอักษร(character)

ชนิดข้อมูลแบบ ตัวเลขจำนวนเต็ม(integer)

ชนิดข้อมูลแบบเลขทศนิยม(floating)

ชนิดข้อมูลแบบ void

          ชนิดข้อมูลแบบนี้จะไม่มีค่า ซึ่งเราจะไม่ใช้ชนิดข้อมูลแบบ void นี้กำหนดให้กับตัวแปร แต่จะนำชนิดข้อมูลประเภทนี้กำหนดไว้ที่ฟังก์ชั่นในกรณีที่ไม่ต้องการให้ฟังก์ชั่นมีการรับค่าใด ๆ เข้ามาหรือส่งค่าใด ๆ กลับไป

ชนิดข้อมูลแบบตัวอักษร (character)(1 ไบต์)

ชนิดข้อมูลประเภท char ซึ่งชนิดข้อมูลประเภทนี้จะเก็บข้อมูลได้ 1 ตัวอักษรเท่านั้น ผู้เขียนโปรแกรมอาจจะคิดว่า คอมพิวเตอร์ทำการเก็บข้อมูลชนิดตัวอักษรนี้ในรูปแบบของตัวอักษร เช่น char A='a'; แล้วคอมพิวเตอร์จะเก็บค่า a ไว้ในตัวแปร A แต่ในความจริงคอมพิวเตอร์จะเก็บข้อมูลในลักษณะของแอสกี (ASCII : American Standard Code for Information Interchange) เช่น ในที่นี้คอมพิวเตอร์จะเก็บค่าตัวแปร A เป็น 0110 0001 ในระบบเลขฐานสอง (มีค่าเท่ากับ 97ในระบบเลขฐานสิบ) ซึ่งจะเป็นรหัส แอสกีของอักษร a นั้นเอง ตัวอย่างเช่น

       char   data = ‘a’;

ส่วนข้อความที่มีความยาวมากกว่า 1 ตัวอักษร เรียกว่า สตริง (String) สามารถนำชนิดข้อมูลแบบตัวอักษรมากำหนดให้อยู่ในลักษณะของอาร์เรย์ (array) ดังนี้

        char   data[23] = “Information Technology”;

          จะเห็นว่าเครื่องหมาย [ ] ของอาร์เรย์เป็นเครื่องหมายที่ใช้กำหนดขนาดของอาร์เรย์ ว่าให้อาร์เรย์เก็บข้อมูลได้กี่ตัวอักษร จากตัวอย่างจะพบว่ามีการกำหนดขนาดของอาร์เรย์เป็น 23 ช่องตัวอักษร ซึ่งในความเป็นจริงจะเก็บตัวอักษรได้เพียง 22 ตัวเท่านั้น เพราะสตริงจะใช้ช่องสุดท้ายในการเก็บ ‘\0’ หรือ Null Character เสมอ เพื่อแสดงถึงการสิ้นสุดของสตริง ดังนั้นหากต้องการเก็บข้อมูล 10 ตัวอักษร จะต้องกำหนดเป็น char data[11];

ชนิดขอมูลแบบเลขจำนวนเต็ม (integer)

เป็นชนิดขอมูลแบบเลขจำนวนเต็ม เช่น 1, 3,50, ... เรียกอีกอย่างว่า Integer Number

ชนิดขอมูลแบบเลขทศนิยม (floating-point)

เป็นชนิดข้อมูลแบบเลขทศนิยม หรือบางทีก็เรียกว่า เลขจำนวนจริง (Real Number) เช่น 10.0, 15.33, 20.00000, ...

ค่าคงที่ (Constants)

          ค่าคงที่ (Constants) เป็นค่าข้อมูลชนิดหนึ่งที่ไม่มีการเปลี่ยนแปลงในขณะที่โปรแกรมทำงาน ตัวอย่างเช่น ค่า  มีค่าเท่ากับ 3.14 เป็นต้น

          รูปแบบการประกาศใช้งานค่าคงที่ กรณีกำหนดค่าคงที่โดยประกาศใช้งานไว้ในส่วนของเฮดเดอร์ไฟล์

      #define ConstantName  value

          โดยที่  ConstantName        คือ  ชื่อของค่าคงที่

                   value                      คือ  ค่าที่ต้องการกำหนดให้กับค่าคงที่

          ตัวอย่างเช่น

     #define   VAT  0.07

     #define   TXT  “Welcome to Thailand”

     #define   NEWLINE   ‘\n’

     #define   ONE  1

ความสัมพันธ์ระหว่างตัวแปรและชนิดของข้อมูล

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

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

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

เช่น     char A;         เป็นการประกาศตัวแปร A ให้เป็นชนิดข้อมูลแบบตัวอักษร

          int B;           เป็นการประกาศตัวแปร B ให้เป็นชนิดข้อมูลแบบเลขจำนวนเต็ม

          float C, D;    เป็นการประกาศตัวแปร C และ D ให้เป็นชนิดข้อมูลแบบเลข

ทศนิยม

          กรณีประกาศตัวแปรพร้อมกับกำหนดค่าเริ่มต้นให้กับตัวแปรด้วย ตัวอย่างเช่น

       char  data = ‘A’;

       int   value = 10;

       float average = 3.1416;

          กรณีประกาศตัวแปรก่อน จากนั้นจึงกำหนดค่าให้กับตัวแปรในภายหลัง ตัวอย่างเช่น

       char  data;

       int   value;

       data = ‘A’;

       value = 10;