0Pricing
C++ Academy · บทเรียน

ตัวแปรและพารามิเตอร์ const

ป้องกันข้อมูลจากการเปลี่ยนแปลง

ตัวแปรและพารามิเตอร์ const เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

การประกาศตัวแปรแบบไม่เปลี่ยนค่า

ตัวแปร const ไม่สามารถแก้ไขได้หลังจากเริ่มต้นค่าแล้ว คอมไพเลอร์จะบังคับใช้กฎนี้และตรวจจับการเขียนค่าโดยไม่ได้ตั้งใจ

#include <iostream>

int main() {
    const int maxUsers = 100;
    // maxUsers = 200;   // ERROR
    std::cout << maxUsers << "\n";
}

พารามิเตอร์ฟังก์ชันแบบไม่เปลี่ยนค่า

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

#include <iostream>

int doubled(const int n) {
    // n = 0;   // ERROR
    return n * 2;
}

int main() { std::cout << doubled(21) << "\n"; }

พารามิเตอร์อ้างอิงแบบไม่เปลี่ยนค่า

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

#include <iostream>
#include <string>

void printLen(const std::string& s) {  // no copy, no change
    std::cout << s.size() << "\n";
}

int main() { printLen("hello"); }

ตัวชี้ไปยังค่าที่เปลี่ยนไม่ได้

const T* หมายความว่าคุณไม่สามารถเปลี่ยนค่าที่ตัวชี้ชี้ไปผ่านตัวชี้นี้ได้ แต่ยังสามารถเปลี่ยนให้ตัวชี้ไปชี้ตำแหน่งอื่นได้

#include <iostream>

int main() {
    int a = 1, b = 2;
    const int* p = &a;
    // *p = 5;   // ERROR: value is const
    p = &b;      // OK: pointer can move
    std::cout << *p << "\n";
}

ตัวชี้ที่เปลี่ยนตำแหน่งไม่ได้

T* const คือตัวชี้คงที่ คุณไม่สามารถเปลี่ยนให้ตัวชี้ไปชี้ตำแหน่งอื่นได้ แต่ยังแก้ไขค่าที่ตัวชี้ชี้ไปได้

#include <iostream>

int main() {
    int a = 1;
    int* const p = &a;
    *p = 9;      // OK: value changeable
    // p = nullptr;  // ERROR: pointer is const
    std::cout << *p << "\n";
}

การอ่านการประกาศจากขวาไปซ้าย

ให้อ่านการประกาศค่าคงที่จากขวาไปซ้าย: const int* const คือ "ตัวชี้คงที่ไปยัง int คงที่" ซึ่งหมายความว่าทั้งค่าและตัวชี้ไม่สามารถเปลี่ยนแปลงได้

เหตุใดการใช้ค่าคงที่อย่างถูกต้องจึงสำคัญ

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

ค่าคงที่ช่วยให้ฟังก์ชันรองรับผู้เรียกได้มากขึ้น

ฟังก์ชันที่รับ const& สามารถรับได้ทั้งอาร์กิวเมนต์แบบคงที่และไม่คงที่ รวมถึงค่าชั่วคราว ส่วนการอ้างอิงแบบไม่คงที่ไม่สามารถผูกกับค่าชั่วคราวได้

ตัวแปรเฉพาะที่แบบคงที่ช่วยให้เข้าใจโค้ด

การประกาศตัวแปรเฉพาะที่เป็น const เมื่อไม่ควรมีการเปลี่ยนค่า จะทำให้โค้ดอ่านง่ายขึ้นและป้องกันการกำหนดค่าใหม่โดยไม่ได้ตั้งใจ

#include <iostream>

int main() {
    const double rate = 0.2;
    const double total = 100 * (1 + rate);
    std::cout << total << "\n";
}

ค่าคงที่ระดับบนสุดของค่า

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

เพิ่มค่าคงที่ตั้งแต่เริ่มต้น

การเริ่มต้นด้วยการใช้ค่าคงที่อย่างถูกต้องทำได้ง่ายกว่าการปรับปรุงโค้ดภายหลังมาก ให้ใช้ const กับพารามิเตอร์ การอ้างอิง และตัวแปรเฉพาะที่เป็นนิสัยพื้นฐาน

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับ const ของคุณ

สรุปทบทวน

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

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

บทเรียน “ตัวแปรและพารามิเตอร์ const” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตัวแปรและพารามิเตอร์ const” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปรและพารามิเตอร์ const”

ป้องกันข้อมูลจากการเปลี่ยนแปลง คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “ตัวแปรและพารามิเตอร์ const” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม

ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ตัวแปรและพารามิเตอร์ const
  2. ฟังก์ชันสมาชิก const
  3. constexpr และเวลาคอมไพล์
  4. consteval และ constinit
← กลับไปที่ C++ Academy