𝟧 เรื่องเล็กๆ ในภาษา C ที่ทำให้ผมสับสน
ผมเคยคิดว่าการเรียนภาษา C จะเป็นเรื่องง่าย
แต่รายละเอียดเล็กๆ น้อยๆ กลับทำให้ผมสับสนมากกว่าแนวคิดใหญ่ๆ เสียอีก
นี่คือ 5 เรื่องที่ต้องใช้เวลาในการทำความเข้าใจจนเชี่ยวชาญ:
การเริ่มนับดัชนี (Indexing) เริ่มที่ 0 Array เริ่มนับที่ 0 แทนที่จะเป็น 1 ซึ่งเป็นเพราะวิธีการทำงานของหน่วยความจำ ผมเคยลำบากกับเรื่องนี้ในช่วงแรกๆ
กฎของเครื่องหมาย semicolon แค่ลืมใส่ semicolon ไปเพียงตัวเดียว โปรแกรมก็พังได้แล้ว แถมข้อความแจ้งเตือนข้อผิดพลาดมักจะไม่บอกตำแหน่งที่แน่นอนด้วย เรื่องนี้ทำให้ผมหงุดหงิดมาก
การกำหนดค่า (Assignment) vs. การเปรียบเทียบความเท่ากัน (Equality) ผมมักจะสับสนระหว่าง = และ == สัญลักษณ์ = ตัวเดียวใช้สำหรับการกำหนดค่า สัญลักษณ์ == สองตัวใช้สำหรับการตรวจสอบความเท่ากัน ผมเคยเขียน
if(a = 5)จนทำให้ตรรกะของโปรแกรมผิดเพี้ยนไปหมดลูปไม่สิ้นสุด (Infinite loops) บางครั้งลูปของผมก็ทำงานไปเรื่อยๆ ไม่ยอมหยุด ส่วนใหญ่เป็นเพราะผมลืมอัปเดตตัวแปรที่ใช้ในลูป การไล่แก้บั๊ก (debugging) ข้อผิดพลาดเหล่านี้สอนให้ผมรู้จักความอดทน
การทำงานของสตริง (Strings) สตริงในภาษา C ไม่ใช่ชนิดข้อมูลพิเศษ แต่มันคือ array ของตัวอักษร (characters) คุณต้องไม่ลืมเรื่อง null character ที่อยู่ท้ายสุดด้วย
รายละเอียดเหล่านี้จะทำให้คุณทำงานช้าลงหากคุณมองข้ามมันไป
อย่ากังวลหากคุณรู้สึกหลงทาง ความสับสนคือส่วนหนึ่งของการเรียนรู้
ฝึกฝนต่อไป แล้วทุกอย่างจะเริ่มเข้าใจได้เอง
ที่มา: https://dev.to/tahami_akservices_cb075e/5-small-things-in-c-that-confused-me-at-first-3m3o
ชุมชนแห่งการเรียนรู้ (ไม่บังคับ): https://t.me/GyaanSetuAi