A data-type in C programming is a set of values and is determined to act on those values. C provides various types of data-types, allowing the programmer to select the appropriate type for the variable to set its value.

The data-type in a programming language is the collection of data with values having fixed meanings and characteristics. Some of them are an integer, floating point, character, etc. Usually, programming languages specify the range values for a given data-type.

C Data Types are used to:

  • Identify the type of a variable when it is declared.
  • Identify the type of return value of a function.
  • Identify the type of parameter expected by a function.
ANSI C provides three types of data types:
  1. Primary(Built-in) Data Types: void, int, char, double, and float.
  2. Derived Data Types: Array, References, and Pointers.
  3. User Defined Data Types: Structure, Union, and Enumeration.

Primary Data Types

Every C compiler supports five primary data types:

void As the name suggests, it holds no value and is generally used for specifying the type of function or what it returns. If the function has a void type, it means that the function will not return any value.
int Used to denote an integer type.
char Used to denote a character type.
float, double Used to denote a floating point type.
int *, float *, char * Used to denote a pointer type.

Three more data types have been added in C99:

  • _Bool
  • _Complex
  • _Imaginary

Declaration of Primary Data Types with Variable Names

After taking suitable variable names, they need to be assigned with a data type. This is how the data types are used along with variables:


int    age;
char   letter;
float  height, width;

Derived Data Types

C supports three derived data types:

Data Types Description
Arrays Arrays are sequences of data items having homogeneous values. They have adjacent memory locations to store values.
References Function pointers allow referencing functions with a particular signature.
Pointers These powerful C features are used to access the memory and deal with their addresses.

User Defined Data Types

C allows the type definition feature, which allows programmers to define their identifier representing an existing data type. There are three such types:

Data Types Description
Structure It is a package of variables of different types under the same name. This is done to handle the data efficiently. Here the "struct" keyword is used to define a structure.
Union These allow storing various data types in the same memory location. Programmers can define a union with different members, but only a single member can contain a value at a given time.
Enum Enumeration is a special data type that consists of integral constants. Each of them is assigned a specific name. "enum" keyword is used to define the enumerated data type.

Data Types and Variable Declarations in C


#include <stdio.h>
int main()
    int a = 4000; // positive integer data type
    float b = 5.2324; // float data type
    char c = 'Z'; // char data type
    long d = 41657; // long positive integer data type
    long e = -21556; // long -ve integer data type
    int f = -185; // -ve integer data type
    short g = 130; // short +ve integer data type
    short h = -130; // short -ve integer data type
    double i = 4.1234567890; // double float data type
    float j = -3.55; // float data type

The storage representation and machine instructions differ from machine to machine. sizeof operator can use to get the exact size of a type or a variable on a particular platform.


#include <stdio.h>
#include <limits.h>
int main()
    printf("Storage size for int is: %d \n", sizeof(int));
    printf("Storage size for char is: %d \n", sizeof(char));
    return 0; 

Program Output:


Found This Page Useful? Share It!
Get the Latest Tutorials and Updates
Join us on Telegram