ชนิดข้อมูลที่ใช้ในภาษา C ได้แก่ integer, short int, signed และ unsigned char เป็นต้น
ชนิดข้อมูล (Data Types)
ชนิดข้อมูลระบุชุดค่าและประเภทข้อมูลที่จัดเก็บในตัวแปรได้ ช่วยให้นักเขียนโปรแกรมเลือกประเภทที่เหมาะกับความต้องการของแอปพลิเคชัน
ชนิดข้อมูลมีดังนี้:
- ชนิดข้อมูลหลัก (Primary data types)
- ชนิดข้อมูลนำพา (Derived data types)
มาทำความเข้าใจชนิดข้อมูลหลัก
ชนิดข้อมูลหลัก
คอมไพเลอร์ C รองรับชนิดข้อมูลพื้นฐาน 4 ชนิด ดังนี้:
- จำนวนเต็ม (Integer)
- ตัวอักษร (Character)
- จุดลอยตัว (Floating-point)
- จุดลอยตัวความแม่นยำสองเท่า (Double precision floating point)

ชนิดข้อมูลจำนวนเต็ม (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' มีค่า ASCII 65
| Character Data Types | |||
|---|---|---|---|
| Type | Size (bytes) | Range | Control String |
| Char (or) signed Char | 1 | -128 ถึง 127 | %c |
| unsigned Char | 1 | 0 ถึง 255 | %c |
ชนิดข้อมูลจุดลอยตัว
- ใช้จัดเก็บจำนวนจริง (คือ ตัวเลขที่มีจุดทศนิยม)
- สำหรับความแม่นยำ 6 หลัก ใช้ 'float'
- สำหรับความแม่นยำ 12 หลัก ใช้ 'double'
- มากกว่า 12 หลัก ใช้ 'long double'
| 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 |
ตัวอย่าง
โปรแกรม C รองรับ ชนิดข้อมูลหลัก:
#include <stdio.h>
#include <limits.h>
int main() {
printf("DATA TYPE\t\t RANGE\n");
printf("-----------\t\t---------\n");
printf("short min\t\t%d\n", SHRT_MIN);
printf("short max int\t\t%d\n", SHRT_MAX);
printf("int min\t\t\t%d\n", INT_MIN);
printf("int max\t\t\t%d\n", INT_MAX);
printf("char min\t\t%d\n", CHAR_MIN);
printf("char max\t\t%d\n", CHAR_MAX);
printf("long min\t\t%ld\n", LONG_MIN);
printf("long max\t\t%ld\n", LONG_MAX);
printf("unsigned char\t\t%u\n", UCHAR_MAX);
printf("unsigned long\t\t%lu\n", ULONG_MAX);
printf("unsigned int\t\t%u\n", UINT_MAX);
printf("unsigned short\t\t%u\n", USHRT_MAX);
return 0;
}ผลลัพธ์
ผลลัพธ์มีดังนี้:
DATA TYPE RANGE ----------- --------- short min -32768 short max int 32767 int min -2147483648 int max 2147483647 char min -128 char max 127 long min -2147483648 long max 2147483647 unsigned char 255 unsigned long 4294967295 unsigned int 4294967295 unsigned short 65535