loader image

C Data Types

In this tutorial, you will learn primary data types in C programming.

Data types are used to determine the size and type of data stored in a variable. For example,

int mark;

Here mark is a variable of type int. That is mark can store integer values.

C supports the following classes of data types:

  • Primary data types.
  • Derived data types.
  • User-defined data types.

C supports five primary (fundamental) datatypes namely integer(int), character(char), floating-point(float), double-precision floating-point(double) and void(void). Many of them also include additional data types, such as long int and long double.

The following table contains various data types along with their size, range of values and format specifier.

Type Size (bytes) Range of values Format specifier
int 2 -32,768 to 32767 %d
char 1 -128 to 127 %c
float 4 3.4E -38 to 3.4E +38 %f
double 8 1.7E -308 to 1.7E +308 %lf
short int 1 -128 to 127 %hd
unsigned int 2 0 to 65535 %u
unsigned short int 1 0 t0 256 %hu
long int 4 -2,147,483,648 to 2,147,483,647 %ld
unsigned long int 4 0 to 4,294,967,295 %lu
long double 10 3.4E -4932 to 1.1E +4932 %Lf


Integers are whole numbers having a range of values that are supported by a certain computer. In C, there are three types of integer storage: short int, int, and long int, which are available in both signed and unsigned forms. That is integers can store both zero, positive and negative values but no decimal values.

int roll;
int roll, mark;
short int id;
signed int x;

short int represents relatively small integer values and takes half the storage space of a typical int number. unsigned int employ all of the bits for the magnitude of the number and are always positive. Because the default declaration implies a signed number, the use of the qualifier signed on integers is optional.

Floating point

Floating-point variables are used to store real numbers with 6 digits of precision. In C, floating-point numbers are defined by the keyword float. To define a number with 14 numbers of precision, the type double can be used. These are referred to as double-precision numbers. long double can be used to increase precision even further.

float rate;
double price;


The char data type can be used to define a single character.

char demo = 'x';


The void type has no values. This is typically used to specify the type of function that returns no value to the caller function.

Derived Data Types and User-Defined Data Types

Derived types are data types that are derived from fundamental data types. Arrays, pointers, function types, structures, and so on are examples.

Notify of
Inline Feedbacks
View all comments