ตัวแปร การอนุมานชนิดอัตโนมัติ และ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตั้งค่าคอมไพเลอร์ C++
- Hello World และกระบวนการสร้างโปรแกรม
- ตัวแปร การอนุมานชนิดอัตโนมัติ และ constexpr
- ตัวดำเนินการพื้นฐานและการแปลงชนิดข้อมูล