
สตริงใน C ไม่ใช่ชนิดข้อมูล แต่เป็นอาร์เรย์ของ char ที่ปิดท้ายด้วยไบต์ 0 คือ null terminator บทนี้ว่าด้วยความต่างของ char s กับ char *s ฟังก์ชันใน string.h ทั้ง strlen strcpy strncpy strcmp strcat และอันตรายของ buffer overflow Read more »

อาร์เรย์ใน C คือบล็อกหน่วยความจำต่อเนื่องที่กำหนดขนาดตอนสร้างแล้วเปลี่ยนไม่ได้ ไม่มีการตรวจขอบเขต ไม่รู้ขนาดของตัวเอง บทนี้ว่าด้วยการประกาศ การ initialize การหาความยาวด้วย sizeof และเรื่อง array decay เมื่อส่งเข้าฟังก์ชัน Read more »

ฟังก์ชันใน C แยกเป็น prototype ที่ประกาศลายเซ็นกับ definition ที่มีโค้ดจริง ต้องประกาศก่อนใช้ พารามิเตอร์ส่งแบบ pass by value เสมอ คือส่งสำเนา บทนี้ยังครอบคลุม void การคืนค่า และ recursion Read more »

for while และ do-while ใน C ต่างกันเมื่อไร การวนอาร์เรย์ให้ถูกขอบเขต off-by-one error ที่พบบ่อยที่สุด break กับ continue และเทคนิคประกาศตัวนับใน for loop ตามมาตรฐาน C99 ขึ้นไป Read more »

if else if else ใน C รับเงื่อนไขเป็นค่า scalar โดย 0 เป็นเท็จและทุกค่าอื่นเป็นจริง switch ปกติต้อง break ทุก case ไม่งั้นไหลต่อ และประกาศตัวแปรใน case ต้องครอบด้วยปีกกา บทนี้ยังครอบคลุม ternary และกับดัก dangling else Read more »

ตัวดำเนินการของ C ทั้งเลขคณิต การเปรียบเทียบ ตรรกะ และ bitwise บทนี้เน้น integer division ที่ตัดเศษทิ้ง การผสม int กับ double เรื่อง operator precedence และ signed integer overflow ที่เป็น undefined behavior Read more »

ชนิดข้อมูลพื้นฐานของ C คือ int char float double และ _Bool ขนาดของแต่ละชนิดไม่ตายตัวขึ้นกับเครื่อง ตรวจด้วย sizeof ตัวแปรที่ไม่ได้กำหนดค่าเริ่มต้นมีค่าขยะ และ scanf รับค่าจากผู้ใช้ได้แต่มีกับดักหลายอย่าง Read more »

โครงสร้างของโปรแกรม C ทุกส่วน ตั้งแต่ #include กับ header, ฟังก์ชัน main และค่าที่มัน return, การใช้ printf กับ format specifier %d %f %c %s และความแตกต่างระหว่างคอมเมนต์สองแบบ Read more »

ติดตั้ง GCC หรือ Clang บน Linux, macOS, Windows คอมไพล์โปรแกรมแรกด้วย gcc hello.c -o hello เข้าใจ 4 ขั้นตอนที่คอมไพเลอร์ทำ preprocess compile assemble link และตั้ง flag ประจำตัว -std=c17 -Wall -Wextra ที่ต้องใช้ทุกครั้ง Read more »

ภาษา C อายุ 50 ปีแต่ยังเป็นภาษาที่ Linux, Windows kernel, SQLite, Python และ Redis เขียนด้วย บทนี้พาไปรู้จักว่า C คืออะไร รันตรงไหน ต่างจากภาษาที่มี garbage collector อย่างไร และทำไมการเรียน C ทำให้เข้าใจคอมพิวเตอร์จริง ๆ Read more »