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

ตัวแปร การอนุมานชนิดอัตโนมัติ และ constexpr

ประกาศตัวแปร ใช้ auto เพื่ออนุมานชนิดข้อมูล และเรียนรู้ว่าเมื่อใดควรกำหนดค่าเป็น constexpr

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

ตัวแปรคืออะไร

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

การประกาศด้วยชนิดข้อมูลที่ระบุชัดเจน

รูปแบบดั้งเดิม: type name = value;

int age = 30;
double pi = 3.14159;
char grade = 'A';
bool isReady = true;

คีย์เวิร์ด auto

ตั้งแต่ C++11 เป็นต้นมา คอมไพเลอร์สามารถอนุมานชนิดข้อมูลจากค่าเริ่มต้นได้ ใช้ auto เพื่อให้โค้ดอ่านง่ายขึ้น โดยเฉพาะเมื่อใช้กับตัววนซ้ำหรือเทมเพลต

auto count = 42;          // int
auto price = 9.99;        // double
auto name = std::string("Ada");  // std::string

กรณีที่ auto ช่วยได้

ใช้ auto เมื่อ:

  • ชนิดข้อมูลมีชื่อยาว (ตัววนซ้ำ เทมเพลต)
  • คุณต้องการหลีกเลี่ยงการแปลงชนิดโดยปริยาย
  • ชนิดข้อมูลอนุมานได้โดยตรงจากค่าเริ่มต้น

กรณีที่ควรหลีกเลี่ยง auto

หลีกเลี่ยง auto เมื่อชนิดข้อมูลที่อนุมานไม่ชัดเจนสำหรับผู้อ่าน สำหรับลิเทอรัลตัวเลข การระบุชนิดข้อมูลอย่างชัดเจนมักสื่อเจตนาได้ดีกว่า

const: ตัวแปรแบบอ่านอย่างเดียว

กำกับตัวแปรที่ไม่ควรเปลี่ยนแปลงด้วย const คอมไพเลอร์จะบังคับใช้ข้อกำหนดนี้

const int MAX_USERS = 100;
const double TAX_RATE = 0.18;

constexpr: ค่าคงที่ขณะคอมไพล์

constexpr มีข้อกำหนดมากกว่า const — ค่าจะต้องทราบได้ขณะคอมไพล์ คอมไพเลอร์จึงสามารถนำค่าไปใช้ในตำแหน่งที่ต้องการค่าคงที่ขณะคอมไพล์ได้

constexpr int BUFFER_SIZE = 1024;
constexpr double PI = 3.14159265358979;

ฟังก์ชัน constexpr

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

constexpr int square(int x) { return x * x; }

constexpr int area = square(5);  // computed at compile time

รูปแบบการกำหนดค่าเริ่มต้น

C++ มีไวยากรณ์สำหรับกำหนดค่าเริ่มต้นหลายรูปแบบ ในโค้ดสมัยใหม่ควรใช้การกำหนดค่าเริ่มต้นด้วยวงเล็บปีกกา เพราะจะปฏิเสธการแปลงชนิดที่ทำให้ช่วงค่าลดลง

int a = 10;        // copy init
int b(10);         // direct init
int c{10};         // brace init (preferred)
int d = {10};      // copy-list init

การลดช่วงค่าและการกำหนดค่าด้วยวงเล็บปีกกา

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

double d = 3.7;
int a = d;     // OK, silently truncates to 3
int b{d};      // ERROR: narrowing conversion

ขอบเขตของตัวแปร

ตัวแปรมีอยู่ตั้งแต่การประกาศจนถึงจุดสิ้นสุดของบล็อกที่ครอบอยู่ (คู่ของ { }) ประกาศตัวแปรในขอบเขตที่แคบที่สุดเท่าที่ทำได้ เพราะจะจำกัดอายุการใช้งานของตัวแปรและลดจุดบกพร่อง

ตรวจสอบสั้น ๆ

การประกาศใดสร้างค่าที่คอมไพเลอร์สามารถใช้เป็นค่าคงที่ขณะคอมไพล์ได้

สรุปทบทวน

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

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

บทเรียน “ตัวแปร การอนุมานชนิดอัตโนมัติ และ constexpr” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปร การอนุมานชนิดอัตโนมัติ และ constexpr”

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

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

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

บทเรียน “ตัวแปร การอนุมานชนิดอัตโนมัติ และ constexpr” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การตั้งค่าคอมไพเลอร์ C++
  2. Hello World และกระบวนการสร้างโปรแกรม
  3. ตัวแปร การอนุมานชนิดอัตโนมัติ และ constexpr
  4. ตัวดำเนินการพื้นฐานและการแปลงชนิดข้อมูล
← กลับไปที่ C++ Academy