คอมไพเลอร์ C รองรับชนิดข้อมูลพื้นฐาน 4 ชนิด:
- จำนวนเต็ม (Integer)
- ตัวอักษร (Character)
- จุดลอยตัว (Floating-point)
- จุดลอยตัวความแม่นยำสองเท่า (Double precision floating point)
ชนิดข้อมูลหลัก (Primary Data Types)

ชนิดข้อมูลจำนวนเต็ม (Integral Data Type)
ใช้จัดเก็บจำนวนเต็มและตัวอักษร แบ่งย่อย 2 ประเภท:
- ชนิดข้อมูลจำนวนเต็ม (Integer Data Type)
- ชนิดข้อมูลตัวอักษร (Character Data Type)
ชนิดข้อมูลจำนวนเต็ม
ใช้จัดเก็บจำนวนเต็ม มี 3 ระดับ: short int, int, long int ในรูป signed และ unsigned
| Integer Data Types | |||
|---|---|---|---|
| Type | Size (bytes) | Range | Control String |
| short int (or) signed short int | 1 | -128 ถึง 127 | %h |
| unsigned short int | 1 | 0 ถึง 255 | %uh |
| int (or) signed int | 4 | -32768 ถึง 32767 | %d หรือ %i |
| unsigned int | 4 | 0 ถึง 65535 | %u |
| long int (or) signed long int | 4 | -2147483648 ถึง 2147483647 | %ld |
| unsigned long int | 4 | 0 ถึง 4294967295 | %lu |
ชนิดข้อมูลตัวอักษร
ใช้จัดเก็บตัวอักษรเท่านั้น จัดเก็บภายในเป็นจำนวนเต็ม ทุกตัวอักษรมีค่า ASCII เทียบเท่า เช่น 'A' = 65
| Character Data Types | |||
|---|---|---|---|
| Type | Size (bytes) | Range | Control String |
| char (or) signed char | 1 | -128 ถึง 127 | %c |
| unsigned char | 1 | 0 ถึง 255 | %c |
ชนิดข้อมูลจุดลอยตัว
ใช้จัดเก็บจำนวนจริง float ใช้สำหรับความแม่นยำ 6 หลัก double สำหรับ 12 หลัก long double สำหรับมากกว่า 12 หลัก
| Floating Point Data Types | |||
|---|---|---|---|
| Type | Size (bytes) | Range | Control String |
| float | 4 | 3.4E-38 ถึง 3.4E+38 | %f |
| double | 8 | 1.7E-308 ถึง 1.7E+308 | %lf |
| long double | 16 | 3.4E-4932 ถึง 1.1E+4932 | %Lf |