Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

วิธีการประกาศตัวแปรเป็นค่าคงที่ในภาษา C และ C++

มีหลายวิธีในการประกาศค่าคงที่ในภาษา C และ C++ ก่อนอื่นเราต้องเข้าใจว่าค่าคงที่คืออะไร

ค่าคงที่คืออะไร?

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

มีหลายวิธีในการประกาศตัวแปรเป็นค่าคงที่

1. ใช้คีย์เวิร์ด const

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

ตัวอย่าง

#include <stdio.h>
int main() {
    const int value = 5;
    printf("ค่าของตัวแปรค่าคงที่คือ: %d", value);
    // พยายามเปลี่ยนค่าตัวแปรค่าคงที่
    value = 8;
    return 0;
}

ผลลัพธ์

error: assignment of read-only variable 'value'

2. สร้าง Enum (Enumeration)

Enum หรือการแจกแจงค่าก็ใช้สร้างชุดของค่าคงที่ Enum เป็นชนิดข้อมูลที่ผู้ใช้กำหนดเอง ใช้ในภาษาโปรแกรมหลายภาษารวมถึง C และ C++ เช่น สามารถกำหนดวันในสัปดาห์เป็น enum เนื่องจากมีค่าข้อมูลคงที่แบบสตริง

ตัวอย่าง

#include <stdio.h>
enum months {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec};
int main() {
    int i;
    printf("ค่าคือ: ");
    for (i = Jan; i <= Dec; i++)
        printf("%d ", i);
    return 0;
}

ผลลัพธ์

ค่าคือ: 0 1 2 3 4 5 6 7 8 9 10 11

3. ใช้ Macros

Macros เป็นประเภทของคำสั่งเพราปรอเซสเซอร์ (preprocessor directive) ประกอบด้วยชุดโค้ดที่รู้จักด้วยชื่อ สร้างโดยใช้ '#define' เมื่อคอมไพเลอร์พบชื่อของ macro ในโค้ด จะแทนที่ด้วยโค้ด ดังนั้น macro จึงเป็นแบบค่าคงที่

ตัวอย่าง

#include <iostream>
using namespace std;
#define val 10
int main() {
    val++; // ไม่สามารถแก้ไขค่าคงที่ได้
    return 0;
}

ผลลัพธ์

error: expression is not assignable

ตัวอย่างเพิ่มเติม

#include <iostream>
using namespace std;
#define val 10
int main() {
    int product = 1;
    cout << "ค่าของ Macro val คือ: " << val;
    for(int i = 0; i < val; i++) {
        product = product * val;
    }
    cout << "\nผลคูณคือ: " << product;
    cout << "\nค่าของ Macro val หลังพยายามแก้ไขคือ: " << val;
    return 0;
}

ผลลัพธ์

ค่าของ Macro val คือ: 10
ผลคูณคือ: 1410065408
ค่าของ Macro val หลังพยายามแก้ไขคือ: 10