The main advantage of 0-based numbering in programming languages is the reduced computational complexity transferring indices to memory locations via pointer arithmetic. If the starting index was 1, this would always have to be subtracted from the index of the element that is retrieved. The memory location $l_i$ of the $i^{th}$ element of an array starting at $l$ is: $l_i = l + (i - b)*s$, where $b$ is the beginning / starting index of the array and $s$ the size of one element. Simply setting $b=0$ saves this one subtraction.

Nevertheless, humans usually start counting at $1$, so this kind of indexing is counter-intuitive for humans not familiar with coding. This is why some programming languages usually starting their indexing at $1$ or allow both $0$ and $1$-based indexing.
ข้อได้เปรียบหลักของการนับเลขแบบ 0 ในภาษาการเขียนโปรแกรมคือความซับซ้อนในการคำนวณที่ลดลงในการถ่ายโอนดัชนีไปยังตำแหน่งหน่วยความจำผ่านเลขคณิตของพอยน์เตอร์ หากดัชนีเริ่มต้นเป็น 1 จะต้องลบออกจากดัชนีขององค์ประกอบที่ดึงมาเสมอ ตำแหน่งหน่วยความจำ $l_i$ ขององค์ประกอบ $i^{th}$ ของอาร์เรย์เริ่มต้นที่ $l$ คือ: $l_i = l + (i - b)*s$ โดยที่ $b$ เป็นจุดเริ่มต้น / ดัชนีเริ่มต้น ของอาร์เรย์และ $s$ ขนาดขององค์ประกอบหนึ่ง เพียงตั้งค่า $b=0$ จะบันทึกการลบหนึ่งอันนี้ อย่างไรก็ตาม มนุษย์มักจะเริ่มนับที่ 1$ ดังนั้นการจัดทำดัชนีประเภทนี้จึงขัดกับสัญชาตญาณสำหรับมนุษย์ที่ไม่คุ้นเคยกับการเขียนโค้ด นี่คือเหตุผลว่าทำไมภาษาโปรแกรมบางภาษามักจะเริ่มสร้างดัชนีที่ $1$ หรืออนุญาตทั้งการจัดทำดัชนีตาม $0$ และ $1$
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence