ตัวแปร C, ประเภทข้อมูล, ค่าคงที่

⚡ สรุปอย่างชาญฉลาด

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

  • 🔤 ตัวแปร: ตัวแปรคือตัวระบุที่มีชื่อ ซึ่งค่าของมันสามารถเปลี่ยนแปลงได้ โดยประกาศใช้ตัวอักษร ตัวเลข หรือเครื่องหมายขีดล่าง
  • 🧮 ประเภทข้อมูล: ชนิดข้อมูลในภาษา C ประกอบด้วยชนิดข้อมูลพื้นฐาน ชนิดข้อมูลที่ได้มาจากการคำนวณ และชนิดข้อมูลที่ผู้ใช้กำหนดเอง ได้แก่ int, char, float, double และ void โดยแต่ละชนิดข้อมูลจะมีขนาดและช่วงค่าที่กำหนดไว้ตายตัว
  • 🔒 ค่าคงที่: ค่าคงที่คือค่าที่เก็บค่าตายตัว ซึ่งรวมถึงค่าคงที่จำนวนเต็ม อักขระ สตริง และจำนวนจริงที่ไม่เปลี่ยนแปลง
  • ⚙️ ประกาศ: คีย์เวิร์ด `const` และคำสั่ง `#define` ต่างก็สร้างค่าคงที่ โดยคีย์เวิร์ด `const` ใช้สำหรับจองหน่วยความจำ และคำสั่ง `#define` ใช้สำหรับแทนที่ข้อความ
  • 🤖 ความช่วยเหลือจากเอไอ: GitHub Copilot จะแนะนำชนิดข้อมูลที่ถูกต้อง แจ้งเตือนข้อผิดพลาดในการตั้งชื่อ และเพิ่มความเร็วในการประกาศตัวแปรในภาษา C

ตัวแปร 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;}

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

#include <stdio.h>
#define PI 3.14
int main() {
printf("%f", PI);
return 0;}

คำถามที่พบบ่อย

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

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

ตัวแปรโลคอลจะอยู่ภายในฟังก์ชันและมีอยู่เฉพาะขณะที่ฟังก์ชันกำลังทำงานอยู่เท่านั้น ส่วนตัวแปรโกลบอลนั้นสามารถเข้าถึงได้ทั่วทั้งโปรแกรมผ่านทางภาษา C ชั้นเก็บของ.

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

ภาษา C ยุคคลาสสิกไม่มีชนิดข้อมูลบูลีน โปรแกรมเมอร์จึงใช้ int ที่มีค่าเป็น 0 และ 1 แทน ตั้งแต่ C99 เป็นต้นมา เพิ่มค่า bool, true และ false ผ่านทางชนิดข้อมูล _Bool

ตัวระบุรูปแบบจะบอก printf และ scanf ว่าจะตีความข้อมูลอย่างไร %d ใช้สำหรับจำนวนเต็ม %f ใช้สำหรับจำนวนทศนิยม และ %c ใช้สำหรับอักขระตัวเดียว

ใช่แล้ว ผู้ช่วยเขียนโค้ด AI จะแนะนำประเภทข้อมูล แจ้งเตือนเกี่ยวกับค่าที่เกินช่วงที่กำหนด และระบุชื่อที่ขัดแย้งกับคำหลัก ตรวจสอบผลลัพธ์เสมอ

นักบิน GitHub ฟังก์ชันนี้จะเติมคำประกาศตัวแปรและค่าคงที่โดยอัตโนมัติจากความคิดเห็นหรือโค้ดใกล้เคียง มันจะแนะนำชื่อและชนิดข้อมูล และร่างบรรทัด const หรือ #define เพื่อให้ตรวจสอบ

สรุปโพสต์นี้ด้วย: