ค่าคงที่ ภาษา C


ค่าคงที่หมายถึงค่าคงที่ซึ่งโปรแกรมอาจไม่เปลี่ยนแปลงในระหว่างการดำเนินการ ค่าคงที่เหล่านี้เรียกอีกอย่างว่า literals (ค่าตามตัวอักษร)

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

ค่าคงที่ได้รับการปฏิบัติเหมือนกับตัวแปรทั่วไป ยกเว้นว่าค่าของพวกมันจะไม่สามารถแก้ไขได้หลังจากนิยามของมัน


Integer Literals (ค่าคงที่และตัวอักษร)


ค่าคงที่ของเลขจำนวนเต็มอาจเป็นค่าคงที่ทศนิยม ฐานแปด หรือเลขฐานสิบหก คำนำหน้าระบุฐานหรือฐาน: 0x หรือ 0X สำหรับเลขฐานสิบหก, 0 สำหรับฐานแปดและไม่มีอะไรสำหรับทศนิยม

ตัวอักษรจำนวนเต็มสามารถมีส่วนต่อท้ายที่เป็นการรวมกันของ U และ L สำหรับ unsigned และ long ตามลำดับ คำต่อท้ายอาจเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก และสามารถอยู่ในลำดับใดก็ได้

ต่อไปนี้คือตัวอย่างบางส่วนของตัวอักษรจำนวนเต็ม −

212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */
078         /* Illegal: 8 is not an octal digit */
032UU       /* Illegal: cannot repeat a suffix */


ต่อไปนี้เป็นตัวอย่างอื่นๆ ของตัวอักษรจำนวนเต็มประเภทต่างๆ −

85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */


Floating-point Literals


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

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

นี่คือตัวอย่างบางส่วนของ floating-point literals −

3.14159       /* Legal */
314159E-5L    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */


Character Constants


ตัวอักษรอยู่ในเครื่องหมายคำพูดเดี่ยว เช่น ‘x’ สามารถเก็บไว้ในตัวแปรอย่างง่ายด้วยชนิดข้อมูล char

ตัวอักษรตัวอักษรอาจเป็นอักขระธรรมดา (เช่น ‘x’) ลำดับหลีก (เช่น ‘\t’) หรืออักขระสากล (เช่น ‘\u02C0’)

มีอักขระบางตัวใน C ที่แสดงความหมายพิเศษเมื่อนำหน้าด้วยแบ็กสแลช เช่น ขึ้นบรรทัดใหม่ (\n) หรือแท็บ (\t)


Escape sequenceMeaning
\\แทนตัวอักษร Backslash(\)
\’แทนตัวอักษร Single Quote(’)
\”แทนตัวอักษร Double Quote(’’)
\?แทนตัวอักษร (’?’)
\aเตรียมพร้อม (เสียงระฆัง)
\bย้อนกลับไป 1 ตัวอักษร
\fขึ้นหน้าใหม่
\nขึ้นบรรทัดใหม่
\rเคอร์เซอร์กลับไปอยู่ที่ต้นบรรทัด
\tเว้นระยะในแนวนอน Horizontal tab
\vเว้นระยะในแนวดิ่ง Vertical tab
\oooแทนตัวอักษรที่มีค่า ASCII เท่ากับ 000 ในระบบเลขฐานแปด
\xhh . . .แทนตัวอักษรที่มีค่า ASCII เท่ากับ  hh ในระบบเลขฐานสิบหก


ต่อไปนี้คือตัวอย่างการแสดงอักขระ ที่แสดงความหมายพิเศษเมื่อนำหน้าด้วยแบ็กสแลช

#include <stdio.h>

int main() {
   printf("Hello\tWorld\n\n");

   return 0;
}


เมื่อโค้ดด้านบนถูกคอมไพล์และรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

String Literals (ตัวอักษรสตริง)


ตัวอักษรสตริงหรือค่าคงที่อยู่ในเครื่องหมายคำพูดคู่ “” สตริงประกอบด้วยอักขระที่คล้ายกับตัวอักษร: อักขระธรรมดา ลำดับหลีก และอักขระสากล

คุณสามารถแบ่งบรรทัดยาวออกเป็นหลายบรรทัดโดยใช้ตัวอักษรสตริงและแยกบรรทัดโดยใช้ spaces

นี่คือตัวอย่างบางส่วนของตัวอักษรสตริง ทั้งสามรูปแบบเป็นสตริงที่เหมือนกัน

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"


Defining Constants (การกำหนดค่าคงที่)


มีสองวิธีง่ายๆ ใน C ในการกำหนดค่าคงที่ −

  • ใช้ #define ตัวประมวลผลล่วงหน้า
  • การใช้คีย์เวิร์ด const


The #define Preprocessor (ตัวประมวลผลล่วงหน้า)


ด้านล่างเป็นรูปแบบการใช้ #define ตัวประมวลผลล่วงหน้าเพื่อกำหนดค่าคงที่ −

#define identifier value


ตัวอย่างต่อไปนี้จะอธิบายโดยละเอียด −

#include <stdio.h>

#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'

int main() {
   int area;  
  
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}


เมื่อโค้ดด้านบนถูกคอมไพล์และรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

The const Keyword


คุณสามารถใช้คำนำหน้า const เพื่อประกาศค่าคงที่ ได้ดังนี้ −

const type variable = value;


ตัวอย่างต่อไปนี้จะอธิบายโดยละเอียด −

#include <stdio.h>

int main() {
   const int  LENGTH = 10;
   const int  WIDTH = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}


เมื่อโค้ดด้านบนถูกคอมไพล์และรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −


โปรดทราบว่าเป็นแนวทางปฏิบัติในการเขียนโปรแกรมที่ดีในการกำหนดค่าคงที่เป็นตัวพิมพ์ใหญ่

Leave a Reply

Your email address will not be published. Required fields are marked *