ค่าคงที่แบ่งออกเป็น 3 ประเภท คือ
- Literal constant
- Defined constant
- Memory constant
Literal constant
ค่าคงที่ประเภทนี้คือค่าคงที่ ที่เป็นข้อมูลที่แน่แนน ค่าคงนี้ประเภทนี้ไม่จําเป็นต้องมีตัวแปรมารองรับ สามารถกําหนดไปในโปรแกรมได้โดยตรง เช่น
printf("4 x 4 = %d", 16);
printf("Hello %c", 'A');
จะเห็นว่าเลข 16 และตัวอักษร A เป็น Literal constant
Defined constant
เป็นค่าคงที่ ที่จะถูกกําหนดไว้ในส่วนหัวของโปรแกรม เช่น
#include <stdio.h>
#define MAX_VALUE 100
main(){
printf("Max value is %d", MAX_VALUE);
}
จากตัวอย่างเมื่อคอมไพล์โปรแกรม อันดับแรกคอมไพเลอร์จะนําเลข 10 ไปแทนที่ MAX_VALUE ก่อนแล้วถึงทําการคอมไพล์โปรแกรม
Memory constant
เป็นการกําหนดค่าคงที่ให้กับตัวแปร โดยค่าที่ถูกกําหนดไปนั้น จะอยู่แบบนี้ไปตลอดการทํางานของโปรแกรมจะไม่สามารถเปลี่ยนแปลงค่าได้ ตัวอย่างการใช้งานคือ
const int max_value = 100;