ตัวแปรและประเภทข้อมูล

แนะนำตัวแปรในภาษา C

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

type identifier;
type identifier = value;

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

int a;
float b;
char c = 'A';

ในตัวอย่างเรามีตัวแปร 3 ตัว ตัวแรกประเภทของมันคือ int และมีชื่อว่า a มันใช้เพื่อเก็บค่าเลขจำนวนเต็ม (integer) และเรายังไม่ได้กำหนดค่าใดๆ ให้มัน ดังนั้นค่าเริ่มต้นของตัวแปรเมื่อถูกสร้างขึ้นจะเป็น NULL ตัวแปรที่สองมีประเภทเป็น float ตัวแปรนี้จะถูกใช้เพื่อเก็บค่าของจำนวนจริง และตัวแปรที่สามมีประเภทเป็น char มันถูกใช้เพื่อเก็บสัญลักษณ์หนึ่งตัวใน ASCII code และเรากำหนด 'A' เป็นค่าเริ่มต้นให้กับมัน

ประเภทข้อมูล

ในภาษา C มีประเภทข้อมูลชนิดต่างๆ ที่ให้เราสามารถใช้เพื่อชนิดการกับข้อมูลต่างประเภทกัน เช่น boolean, number, character, object เป็นต้น

ตารางข้างล่างนี้แสดงประเภทข้อมูลทั้งหมดในภาษา C

Data typeSizeValue
char1 byte-128 to 127
unsigned char1 byte0 to 255
signed char1 byte-128 to 127
int4 byte-2,147,483,648 to 2,147,483,647
unsigned int4 byte0 to 4,294,967,295
short2 byte-32,768 to 32,767
unsigned short2 byte0 to 65,535
long4 byte-2,147,483,648 to 2,147,483,647
unsigned long4 byte0 to 4,294,967,295
float4 byte1.2E-38 to 3.4E+38
double8 byte2.3E-308 to 1.7E+308
long double10 byte3.4E-4932 to 1.1E+4932
bool1 bit0 to 1

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

ตอนนี้เราจะมาเรียนวิธีการประกาศและกำหนดค่าเริ่มต้นให้กับตัวแปรกับตัวอย่างง่ายๆ

#include <stdio.h>

int main () {
int a = 5;
int b;
b = 10;
int c = a + b;
printf("Value of c is %d", c);
return 0;
}

ในตัวอย่าง เราได้สร้างตัวแปรสามตัวคือ a, b และ c ที่มีชนิดข้อมูลเป็น int และเรารวมค่าของ a และ b แล้วเก็บไว้ในตัวแปร c ข้างล่างนี้เป็นผลลัพธ์ของโปรแกรม

Value of c is 15

อย่างไรก็ตาม คุณสามารถประกาศชนิดข้อมูลอื่นได้ ซึ่งมันไม่อยากเกินไป มาดูตัวอย่างเพิ่มเติม

#include <stdio.h>

int main () {
float PI = 3.14;
int r;
scanf("Enter circle radius %d", &r);
double result = 2*PI*r;
printf("Area is %f", result );
return 0;
}

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

Boolean

Boolean เป็นประเภทข้อมูลที่มีได้เพียงสองค่าคือจริง (true) และเท็จ (false) ซึ่งเป็นประเภทของตัวแปรสำหรับเก็บค่าที่เป็นไปได้เพียงสองค่า เช่น กลางวันและกลางคืน สีขาวและสีดำ ร้อนและหนาว เป็นต้น ข้อมูลประเภทนี้มักจะใช้สำหรับสร้าง Expression สำหรับเงื่อนไขการทำงานของโปรแกรม ในภาษา C ค่าของ boolean นั้นใช้ 1 หรือ true สำหรับค่าที่เป็นจริงและ 0 หรือ false สำหรับค่าที่เป็นเท็จ มาดูตัวอย่างการใช้งาน

#include <stdio.h>
#include <stdbool.h>

int main ()
{
bool male = 1;
bool open = 0;

if (male) {
printf("This is the boy.\n");
}
else {
printf("This is the girl.\n");
}

if(open) {
printf("The door is open.\n");
}
else {
printf("The door is not open.\n");
}

return 0;
}

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

This is the boy.
The door is not open.

ในคอมไพเลอร์ของภาษา C ในปัจจุบันนั้น ข้อมูลประเภท bool นั้นถูกนำออกแล้ว ดังนั้นเพื่อใช้ข้อมูลประเภทนี้ เราต้องทำเข้าไลบรารี่จาก stdbool.h สำหรับการใช้งาน และคอมไพลเลอร์ของคุณสนับสนุนเวอร์ชัน C99 ด้วย อย่างไรก็ตามมีหลายวิธีที่จะ implement ข้อมูลประเภท bool ถ้าหากคุณใช้บ่อยๆ ในโปรแกรม หรือสามารถใช้ข้อมูลประเภท Integer แทนได้

Char ตัวอักษร

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

#include <stdio.h>

int main ()
{
char n = 'A';
printf("%c\n", n);
printf("%d\n", n);

char *name = "marcuscode";
printf("%s", name);

char extension[] = ".com";
printf("%s", extension);

return 0;
}

ในตัวอย่าง เป็นการประกาศตัวแปรประเภท char โดยการเก็บตัวอักษร A ตัวอักษรทุกตัวนั้นมีรหัส ASCII ของมันในฐาน 10 ในภาษา C นั้นข้อมูลประเภท Char และ Integer สามารถแปลงค่าได้โดยวิธี implicit และ Explicit type casting ยกตัวอย่างเช่น เมื่อเราต้องการค่าที่หมายถึง A และสามารถใช้ 65 แทนได้ดังตัวอย่างข้างล่าง

char a = 65; // A
int b = 'A'; // 65

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

A
65
marcuscode.com

Integer ตัวเลขจำนวนเต็ม

Integer เป็นประเภทข้อมูลแบบจำนวนเต็ม ซึ่งข้อมูลแบบ Integer นั้นจะประกอบไปด้วยหลายขนาด เช่น short int และ long ซึ่งจะเก็บข้อมูลในระยะที่แตกต่างกัน เรามักจะใช้ตัวแปรประเภท Integer สำหรับเก็บข้อมูลที่นับได้ เช่น จำนวนของผลไม้ในตระกร้า จำนวนของคนในห้อง จำนวนของรถที่วิ่งบนท้องถนน เป็นต้น มาดูตัวอย่างการใช้งานตัวแปรประเภท Integer ในภาษา C

#include <stdio.h>

int main ()
{
int apple = 3;
int orange = 2;
int total = apple + orange;

printf("%d apples and %d oranges\n", apple, orange);
printf("I have %d fruits in total", total);

return 0;
}

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

#include <stdio.h>
#include <limits.h>

int main ()
{
printf("Maximum value of int: %d\n", INT_MAX);
printf("Minimum value of int: %d\n", INT_MIN);

int a = INT_MAX;
printf("%d\n", a);
a = a + 1;
printf("%d\n", a);

return 0;
}

ในตัวอย่าง เป็นโปรแกรมในการแสดงค่ามากสุดและค่าน้อยสุดของข้อมูลประเภท Integer โดยใช้ค่าคงที่ INT_MAX และ INT_MIN ซึ่งเป็นค่าที่กำหนดโดย marco ที่อยู่ในไลบรารี่ limits.h ของภาษา C และเราทดสอบการทำงานของโปรแกรมโดยการกำหนดค่ามากสุดให้กับตัวแปร a และเพิ่มค่าของตัวแปรขึ้นไป 1 ผลลัพธ์ที่ได้คือค่าในตัวแปรนั้นเกิด overflow และเป็นที่น้อยที่สุดของ Integer ซึ่งจะได้ผลลัพธ์ตามข้างล่าง

Maximum value of int: 2147483647
Minimum value of int: -2147483648
2147483647
-2147483648

Floating-point numbers ตัวเลขจำนวนจริง

Floating-point number เป็นประเภทข้อมูลสำหรับเก็บตัวเลขจำนวนจริง ในภาษา C จะมีอยู่สองประเภทคือ float และ double สิ่งที่แตกต่างกันคือขนาดของพื้นที่ที่ใช้ในการจัดเก็บ และข้อมูลประเภท double นั้นจะเก็บจำนวนของทศนิยมได้มากกว่า ข้อมูลประเภทนี้จะใช้เก็บข้อมูลที่มีค่าเป็นเศษส่วนหรือตัวเลขที่มีเลขหลังจุดทศนิยม ยกตัวอย่างเช่น ข้อมูลการคำนวณทางวิทยาศาสตร์ เป็นต้น มาดูตัวอย่างการประกาศตัวแปรและใช้งาน

#include <stdio.h>

int main ()
{
float pi = 3.14f;
float half = 3 / 2.0f;
float half2 = 3 / 2;

printf("Pi: %f\n", pi);
printf("Half of 3: %f\n", half);
printf("Half of 3: %f\n", half2);

double gravity = 9.807;
double earth_mass = 5.972E24;
double meter = 1E-3;

printf("Earth gravity: %lf m/s^2\n", gravity);
printf("Earth mass: %lf kg\n", earth_mass);
printf("1 centimeter: %lf meter\n", meter);
return 0;
}

ในตัวอย่าง เป็นการใช้งานตัวแปรสำหรับเก็บข้อมูลในรูปแบบของทศนิยมทั้งตัวแปรประเภท float และ double ในส่วนแรกเราได้ประกาศตัวแปร float จำนวนสามตัวและกำหนดค่าให้กับตัวแปร ค่าของข้อมูลประเภท float นั้นจะลงท้ายด้วย f หรือ F เสมอ

float half = 3 / 2.0f;
float half2 = 3 / 2;

ต่อมาเป็นการทดสอบการหารตัวเลขในตัวแปร half และ half2 เพื่อให้คุณเข้าใจและเห็นความแตกต่างของสิ่งที่เกิดขึ้น การคูณหรือการหารตัวเลขในภาษา C นั้นจะได้ผลลัพธ์เป็น Integer ถ้าหากตัวเลขทั้งสองตัวนั้นเป็นประเภท Integer เหมือนในตัวแปร half2 ถ้าหากมีตัวแปรอย่างน้อนหนึ่งตัวแปรที่เป็น float หรือ double จะได้ข้อมูลเป็น float หรือ double นี่จึงเป็นสิ่งที่ต้องควรระวังในการเขียนโปรแกรม

double gravity = 9.807;
double earth_mass = 5.972E24;
double meter = 1E-3;

สามตัวแปรต่อมาเป็นการประกาศตัวแปรประเภท double สำหรับตัวแปรทั้งสองประเภทนั้นสามารถประกาศในรูปแบบสัญกรณ์วิทยาศาสตร์ได้ เช่นในตัวอย่างในตัวแปร earth_mass เป็นการกำหนดค่าแบบย่อซึ่งมีค่าเท่ากับ 5.972 x 10^24 และในตัวแปร meter นั้นมีค่าเท่ากับ 1 x 10^-3

Pi: 3.140000
Half of 3: 1.500000
Half of 3: 1.000000
Earth gravity: 9.807000 m/s^2
Earth mass: 5972000000000000300000000.000000 kg
1 centimeter: 0.001000 meter

นี่เป็นผลลัพธ์ของโปรแกรมในการทำงานกับประเภทข้อมูลแบบทศนิยมในภาษา C ด้วยตัวแปรแบบ float และ double

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


บทความเกี่ยวกับ ตัวแปรและประเภทข้อมูล

ตัวแปรและประเภทข้อมูล ในภาษา C#

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

ตัวแปรและประเภทข้อมูล ในภาษา Java

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวแปรและประเภทข้อมูลชนิดต่างๆ ในภาษา Java ที่จะใช้กับข้อมูลในกรณีที่โปรแกรมต้องจัดการกับข้อมูลหลากหลายรูปแบบ ในภาษา Java มีข้...

ตัวแปรและประเภทข้อมูล ในภาษา Visual Basic

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

ตัวแปรและประเภทข้อมูล ในภาษา C++

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

ตัวแปรและประเภทข้อมูล ในภาษา PHP

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