Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง strlen() และ sizeof() สำหรับสตริงในภาษา C

ในการเขียนโปรแกรม สตริง (String) ถูกนิยามว่าเป็นชุดของอักขระ สำหรับความต้องการในการหาจำนวนอักขระที่ใช้สร้างสตริง ภาษา C มี 2 วิธีคือ strlen() และ sizeof()

ทั้งสองวิธีใช้หาความยาวของตัวถูกดำเนินการ (Operand) แต่จากการทำงานภายในมีความแตกต่างพื้นฐานดังนี้:

ลำดับ หัวข้อ strlen() sizeof()
1 นิยาม strlen() เป็นฟังก์ชันที่กำหนดไว้ล่วงหน้าในไฟล์ส่วนหัว string.h ในภาษา C sizeof() เป็นตัวดำเนินการยูนารี (Unary Operator) ไม่ใช่ฟังก์ชันที่กำหนดไว้ล่วงหน้า
2 การทำงาน นับจำนวนอักขระในสตริง ไม่นับค่าค่าว่าง (Null character) คืนค่าความยาวของสตริงที่ลงท้ายด้วย Null คำนวณขนาดจริงของข้อมูลทุกชนิดที่จัดสรรไว้ในหน่วยไบต์ (รวมค่าค่าว่างด้วย)
3 การจัดการค่า Null ไม่นับค่า Null ในการคำนวณความยาวสตริง ไม่สนใจค่าของตัวแปร คำนวณขนาดจริงที่จัดสรรในหน่วยไบต์ (รวมค่า Null ด้วย)