C Data Types

In C programming, data types are essential to specify the type of data a variable can hold. Understanding and using the correct data types is crucial for memory allocation, efficient data manipulation, and ensuring data integrity. Here are some common data types in C:

Integer Data Types

  1. int: Represents integers, typically 4 bytes on most systems.
  2. short int or short: Represents shorter integers, usually 2 bytes.
  3. long int or long: Represents longer integers, often 4 or 8 bytes.
  4. char: Represents a single character, usually 1 byte.
int age = 25; char grade = 'A';

Floating-Point Data Types

  1. float: Represents single-precision floating-point numbers.
  2. double: Represents double-precision floating-point numbers (more precision than float).
  3. long double: Represents extended-precision floating-point numbers (even more precision than double).
float salary = 55000.50; double pi = 3.141592653589793;

Boolean Data Type

Represents a Boolean value, either true or false. (Note: C does not have a built-in Boolean data type; it is often implemented using int, where 0 represents false, and any non-zero value represents true).

bool is_valid = true;

Character Data Type

Represents a single character, such as a letter, digit, or symbol.

char grade = 'B';

Enumeration Data Type

Represents a user-defined set of named integer constants.

enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; enum Days today = Wednesday;

Void Data Type

Represents the absence of a data type. It is often used with functions that do not return a value or with pointers.

Example (function returning void):
void greet() { printf("Hello, World!\n"); }

User-Defined Data Types

  1. struct: Allows you to create user-defined composite data types by grouping different variables together.
  2. union: Similar to struct, but it allows different variables to share the same memory space.
  3. typedef: Enables you to create aliases for existing data types, making code more readable.
Example (struct):
struct Person { char name[50]; int age; }; struct Person employee;
Example (typedef):
typedef int Age; Age my_age = 30;

Points to remember:

  1. The size of a data type can vary depending on the compiler and the computer architecture.
  2. The range of values that a data type can store can also vary depending on the compiler and the computer architecture.
  3. It is important to use the correct data type for the value that you want to store. Using the wrong data type can lead to errors.


Understanding these data types and choosing the appropriate one for each variable in your C program is crucial for efficient and error-free coding. The choice of data type depends on the range of values the variable will hold and the memory requirements of your program.