ตัวแปร C, ประเภทข้อมูล, ค่าคงที่
ตัวแปรคืออะไร?
ตัวแปรคือตัวระบุซึ่งใช้ในการเก็บค่าบางอย่าง ค่าคงที่ไม่สามารถเปลี่ยนแปลงได้ในขณะที่ดำเนินการ ตัวแปรสามารถเปลี่ยนแปลงได้ระหว่างการทำงานของโปรแกรมและอัพเดตค่าที่เก็บไว้ภายใน
ตัวแปรตัวเดียวสามารถใช้ได้หลายตำแหน่งในโปรแกรม ชื่อตัวแปรจะต้องมีความหมาย ควรแสดงถึงวัตถุประสงค์ของตัวแปร
Example: Height, age, are the meaningful variables that represent the purpose it is being used for. Height variable can be used to store a height value. Age variable can be used to store the age of a person
จะต้องประกาศตัวแปรก่อนจึงจะใช้ที่ไหนสักแห่งภายในโปรแกรม ชื่อตัวแปรถูกสร้างขึ้นโดยใช้อักขระ ตัวเลข และขีดล่าง
ต่อไปนี้เป็นกฎที่ต้องปฏิบัติตามขณะสร้างตัวแปร:
- ชื่อตัวแปรควรประกอบด้วยอักขระ ตัวเลข และขีดล่างเท่านั้น
- ชื่อตัวแปรไม่ควรขึ้นต้นด้วยตัวเลข
- ชื่อตัวแปรไม่ควรประกอบด้วยช่องว่าง
- ชื่อตัวแปรไม่ควรประกอบด้วยคำสำคัญ
- 'C' เป็นภาษาที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ซึ่งหมายความว่าตัวแปรชื่อ 'age' และ 'AGE' นั้นแตกต่างกัน
ต่อไปนี้เป็นตัวอย่างชื่อตัวแปรที่ถูกต้องในโปรแกรม 'C':
height or HEIGHT _height _height1 My_name
ต่อไปนี้เป็นตัวอย่างชื่อตัวแปรที่ไม่ถูกต้องในโปรแกรม 'C':
1height Hei$ght My name
เช่น เราประกาศตัวแปรจำนวนเต็ม my_variable และกำหนดค่าให้กับมัน 48:
int my_variable; my_variable = 48;
อย่างไรก็ตาม เราสามารถประกาศและเริ่มต้น (กำหนดค่าเริ่มต้น) ให้กับตัวแปรในคำสั่งเดียวได้:
int my_variable = 48;
ประเภทข้อมูล
'C' มีประเภทข้อมูลต่างๆ เพื่อให้โปรแกรมเมอร์สามารถเลือกประเภทข้อมูลที่เหมาะสมตามความต้องการของแอปพลิเคชันได้ง่าย ต่อไปนี้คือประเภทข้อมูลสามประเภท:
- ชนิดข้อมูลดั้งเดิม
- ชนิดข้อมูลที่ได้รับ
- ประเภทข้อมูลที่ผู้ใช้กำหนด
มีประเภทข้อมูลพื้นฐานหลักห้าประเภท
- int สำหรับข้อมูลจำนวนเต็ม
- ถ่านสำหรับข้อมูลตัวละคร
- float สำหรับตัวเลขจุดลอยตัว
- double สำหรับเลขทศนิยมลอยตัวที่มีความแม่นยำสองเท่า
- ถือเป็นโมฆะ
อาร์เรย์ ฟังก์ชัน ตัวชี้ โครงสร้าง ล้วนเป็นประเภทข้อมูลที่ถูกอนุมาน ภาษา C มีประเภทข้อมูลหลักที่กล่าวถึงข้างต้นในเวอร์ชันที่ขยายออกไปอีก ประเภทข้อมูลแต่ละประเภทมีขนาดและช่วงที่แตกต่างกัน ตารางต่อไปนี้แสดงขนาดและช่วงของประเภทข้อมูลแต่ละประเภท
ประเภทข้อมูล | ขนาดเป็นไบต์ | พิสัย |
---|---|---|
ถ่านหรือถ่านที่ลงนาม | 1 | -128 ไป 127 |
ถ่านที่ไม่ได้ลงนาม | 1 | เพื่อ 0 255 |
int หรือลงนาม int | 2 | -32768 ไป 32767 |
int ที่ไม่ได้ลงนาม | 2 | เพื่อ 0 65535 |
int สั้นหรือ int สั้นที่ไม่ได้ลงนาม | 2 | เพื่อ 0 255 |
ลงนามสั้น int | 2 | -128 ไป 127 |
int ยาวหรือลงนาม int ยาว | 4 | -2147483648 ไป 2147483647 |
int ยาวที่ไม่ได้ลงนาม | 4 | เพื่อ 0 4294967295 |
ลอย | 4 | 3.4E-38 ถึง 3.4E+38 |
สอง | 8 | 1.7E-308 ถึง 1.7E+308 |
ดับเบิ้ลยาว | 10 | 3.4E-4932 ถึง 1.1E+4932 |
หมายเหตุ: ใน C ไม่มีประเภทข้อมูลบูลีน
ชนิดข้อมูลจำนวนเต็ม
จำนวนเต็มไม่ใช่อะไรนอกจากจำนวนเต็ม ช่วงของประเภทข้อมูลจำนวนเต็มจะแตกต่างกันไปในแต่ละเครื่อง ช่วงมาตรฐานสำหรับชนิดข้อมูลจำนวนเต็มคือ -32768 ถึง 32767
โดยทั่วไปจำนวนเต็มจะมีขนาด 2 ไบต์ ซึ่งหมายความว่าใช้พื้นที่หน่วยความจำทั้งหมด 16 บิต ค่าจำนวนเต็มเดียวใช้หน่วยความจำ 2 ไบต์ ชนิดข้อมูลจำนวนเต็มจะถูกแบ่งออกเป็นประเภทข้อมูลอื่นๆ เช่น short int, int และ long int
ข้อมูลแต่ละประเภทมีความแตกต่างกันในช่วงแม้ว่าจะอยู่ในตระกูลประเภทข้อมูลจำนวนเต็มก็ตาม ขนาดอาจไม่เปลี่ยนแปลงสำหรับประเภทข้อมูลของตระกูลจำนวนเต็มแต่ละประเภท
Int แบบสั้นส่วนใหญ่ใช้สำหรับจัดเก็บตัวเลขขนาดเล็ก Int ใช้สำหรับจัดเก็บค่าจำนวนเต็มขนาดกลาง และ Int แบบยาวใช้สำหรับจัดเก็บค่าจำนวนเต็มขนาดใหญ่
เมื่อใดก็ตามที่เราต้องการใช้ชนิดข้อมูลจำนวนเต็ม เราจะวาง int ก่อนตัวระบุ เช่น
int age;
ในที่นี้ อายุ เป็นตัวแปรของประเภทข้อมูลจำนวนเต็มซึ่งสามารถใช้เพื่อเก็บค่าจำนวนเต็มได้
ชนิดข้อมูลจุดลอยตัว
เช่นเดียวกับจำนวนเต็ม ในโปรแกรม 'C' เราสามารถใช้ประเภทข้อมูลจุดทศนิยมได้ คำสำคัญ 'float' ใช้เพื่อแสดงประเภทข้อมูลจุดลอยตัว สามารถเก็บค่าจุดลอยตัวได้ซึ่งหมายความว่าตัวเลขมีเศษส่วนและทศนิยม ค่าจุดลอยตัวคือจำนวนจริงที่มีจุดทศนิยม ประเภทข้อมูลจำนวนเต็มไม่ได้เก็บส่วนทศนิยมดังนั้นเราจึงสามารถใช้ทศนิยมเพื่อเก็บส่วนทศนิยมของค่าได้
โดยทั่วไป float สามารถเก็บค่าความแม่นยำได้สูงสุด 6 ค่า หาก float ไม่เพียงพอ เราสามารถใช้ประเภทข้อมูลอื่นที่สามารถเก็บค่าจุดลอยตัวขนาดใหญ่ได้ ประเภทข้อมูล double และ long double ใช้ในการเก็บตัวเลขจริงด้วยความแม่นยำสูงสุดถึง 14 และ 80 บิต ตามลำดับ
เมื่อใช้ตัวเลขจุดลอยตัว คำหลัก float/double/long double จะต้องวางไว้ก่อนตัวระบุ ตัวอย่างที่ถูกต้อง ได้แก่
float division; double BankBalance;
ชนิดข้อมูลตัวอักษร
ชนิดข้อมูลอักขระใช้เพื่อจัดเก็บค่าอักขระตัวเดียวที่อยู่ในเครื่องหมายคำพูดเดี่ยว
ชนิดข้อมูลอักขระใช้พื้นที่หน่วยความจำสูงสุด 1 ไบต์
ตัวอย่าง,
Char letter;
ชนิดข้อมูลเป็นโมฆะ
ประเภทข้อมูลที่เป็นโมฆะไม่มีหรือส่งคืนค่าใดๆ ส่วนใหญ่จะใช้สำหรับกำหนดฟังก์ชันใน 'C'
ตัวอย่าง,
void displayData()
การประกาศประเภทตัวแปร
int main() { int x, y; float salary = 13.48; char letter = 'K'; x = 25; y = 34; int z = x+y; printf("%d \n", z); printf("%f \n", salary); printf("%c \n", letter); return 0;}
Output:
59 13.480000 K
เราสามารถประกาศตัวแปรหลายตัวด้วยประเภทข้อมูลเดียวกันในบรรทัดเดียวโดยคั่นด้วยเครื่องหมายจุลภาค นอกจากนี้ ให้สังเกตการใช้ตัวระบุรูปแบบใน printf ฟังก์ชั่นเอาต์พุต float (%f) และ char (%c) และ int (%d)
ค่าคงที่
ค่าคงที่คือค่าคงที่ที่ไม่เปลี่ยนแปลงระหว่างการทำงานของโปรแกรม ต่อไปนี้คือค่าคงที่ประเภทต่างๆ:
ค่าคงที่จำนวนเต็ม
ค่าคงที่จำนวนเต็มไม่ใช่สิ่งอื่นใดนอกจากค่าที่ประกอบด้วยตัวเลขหรือตัวเลข ค่าเหล่านี้จะไม่เปลี่ยนแปลงระหว่างการทำงานของโปรแกรม ค่าคงที่จำนวนเต็มสามารถเป็นเลขฐานแปด เลขฐานสิบ และเลขฐานสิบหกได้
- ค่าคงที่ทศนิยมประกอบด้วยตัวเลขตั้งแต่ 0-9 เช่น
Example, 111, 1234
ข้างต้นเป็นค่าคงที่ทศนิยมที่ถูกต้อง
- ค่าคงที่ฐานแปดประกอบด้วยตัวเลขตั้งแต่ 0-7 และค่าคงที่ประเภทนี้จะนำหน้าด้วย 0 เสมอ
Example, 012, 065
ด้านบนคือค่าคงที่ฐานแปดที่ถูกต้อง
- ค่าคงที่เลขฐานสิบหกประกอบด้วยตัวเลขตั้งแต่ 0-9 รวมถึงอักขระจาก AF ค่าคงที่เลขฐานสิบหกจะนำหน้าด้วย 0X เสมอ
Example, 0X2, 0Xbcd
ข้างต้นเป็นค่าคงที่ฐานสิบหกที่ถูกต้อง
ค่าคงที่เลขฐานแปดและเลขฐานสิบหกไม่ค่อยถูกใช้ในการเขียนโปรแกรมด้วย 'C'
ค่าคงที่อักขระ
ค่าคงที่อักขระประกอบด้วยอักขระเพียงตัวเดียวที่อยู่ในเครื่องหมายคำพูดเดียว (”) นอกจากนี้เรายังสามารถแสดงค่าคงที่ของอักขระได้โดยระบุค่า ASCII ของมัน
Example, 'A', '9'
ข้างต้นเป็นตัวอย่างค่าคงที่อักขระที่ถูกต้อง
ค่าคงที่สตริง
ค่าคงที่ของสตริงจะมีลำดับอักขระที่อยู่ภายในเครื่องหมายคำพูดคู่ ("")
Example, "Hello", "Programming"
เหล่านี้คือตัวอย่างของค่าคงที่สตริงที่ถูกต้อง
ค่าคงที่จริง
เช่นเดียวกับค่าคงที่จำนวนเต็มที่มีค่าจำนวนเต็มเสมอ นอกจากนี้ 'C' ยังให้ค่าคงที่จริงที่มีจุดทศนิยมหรือค่าเศษส่วนอีกด้วย ค่าคงที่จริงเรียกอีกอย่างว่าค่าคงที่จุดลอยตัว ค่าคงที่จริงประกอบด้วยจุดทศนิยมและค่าเศษส่วน
Example, 202.15, 300.00
สิ่งเหล่านี้คือค่าคงที่จริงที่ถูกต้องใน 'C'
ค่าคงที่จริงสามารถเขียนได้เป็น
Mantissa e Exponent
ตัวอย่างเช่น หากต้องการประกาศค่าที่ไม่เปลี่ยนแปลงเหมือนกับ PI คงที่ของวงกลมแบบคลาสสิก มีสองวิธีในการประกาศค่าคงที่นี้
- โดยใช้ const คีย์เวิร์ดในการประกาศตัวแปรซึ่งจะสงวนหน่วยความจำไว้
- โดยใช้ #กำหนด คำสั่งพรีโปรเซสเซอร์ซึ่งไม่ใช้หน่วยความจำในการจัดเก็บและไม่มีการใส่อักขระอัฒภาคที่ส่วนท้ายของคำสั่งนั้น
#include <stdio.h> int main() { const double PI = 3.14; printf("%f", PI); //PI++; // This will generate an error as constants cannot be changed return 0;}
#include <stdio.h> #define PI 3.14 int main() { printf("%f", PI); return 0;}
สรุป
- ค่าคงที่คือค่าที่ไม่เปลี่ยนแปลงตลอดการทำงานของโปรแกรม
- ตัวแปรคือตัวระบุที่ใช้ในการจัดเก็บค่า
- มีประเภทข้อมูลที่ใช้กันทั่วไปสี่ประเภท เช่น int, float, char และ void
- ข้อมูลแต่ละประเภทมีขนาดและช่วงแตกต่างกัน