ค่าคงที่ ภาษา 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 sequence | Meaning |
---|---|
\\ | แทนตัวอักษร 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;
}
เมื่อโค้ดด้านบนถูกคอมไพล์และรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
โปรดทราบว่าเป็นแนวทางปฏิบัติในการเขียนโปรแกรมที่ดีในการกำหนดค่าคงที่เป็นตัวพิมพ์ใหญ่