Skip to content

0.3 Why string Exists

สัญลักษณ์ตัวเดียวมันน่าเบื่อ เราแทบจะอยากพูดเป็นคำหรือประโยคเสมอ เราก็เลยเอา char หลายๆ ตัวมาเรียงกัน แล้วเรียกมันว่า string

string = [ 'H', 'E', 'L', 'L', 'O' ]
1 char × 5 = one string

แค่นั้นจริงๆ — string คือ list ของ characters ภายใต้ชื่อเดียว

ใน C คุณจะเห็นโครงสร้าง list ด้วยตาตัวเอง:

#include <stdio.h>
int main() {
char word[] = "HELLO";
printf("%zu\n", sizeof(word)); // 6 (5 ตัวอักษร + 1 ตัวซ่อน '\0')
printf("%c\n", word[0]); // H
printf("%c\n", word[4]); // O
return 0;
}

6 bytes สำหรับ “HELLO”? ใช่! C strings มี null byte ('\0') ที่มองไม่เห็นต่อท้าย เพื่อบอกว่า “string จบตรงนี้”

นี่คือเหตุผลที่ SQL ประดิษฐ์ VARCHAR ที่มี length prefix — เพื่อหลีกเลี่ยง null-terminator trick ของ C

ทำไมชื่อเรียกถึงต่างกัน?

Section titled “ทำไมชื่อเรียกถึงต่างกัน?”
ภาษา/Toolเรียกว่า
Cchar[] หรือ char* (ไม่มี “string” type แยก)
Google Sheets”text” (ไม่พูดว่า “string” แต่เป็นสิ่งเดียวกัน)
Pythonstr
SQLVARCHAR, TEXT, CHAR

แนวคิดเดียวกัน สะกดต่างกัน เพราะแต่ละ tool ถูกประดิษฐ์โดยคนละกลุ่มคนละยุค