Skip to main content

Data Types in C Programming Language

Raj is an ardent coder who loves exploring new technology. He is an IT pro with 9 years of exp in C#, Angular, React, Vue.


A programming language helps us process certain kinds of data by providing useful output. The task of data processing is accomplished by executing a series of commands called a program. A program usually contains different types of data, such as integer, float, character etc. A program stores the values being used along with a library function and the user defined function (UDF) to process that stored data. C language is rich in data types and library functions.

C data types can be broadly classified as :

  1. Primary data types
  2. Secondary data types

Data Types in C


Primary Data Types in C Language

Primary data types include the following:

  • Integer
  • Float
  • Character
  • Void

Integer Data Type

  • Integers are whole numbers with a range of values, the range limits being machine dependent.
  • Denoted by the keyword int.
  • Generally an integer occupies 2 bytes memory space and its value range is limited to -32768 to +32767 (that is, -215 to +215-1).
  • A signed integer uses one bit for storing the sign and 15 bits for the number.

To control the range of numbers and storage space, C has three classes of integer storage:

  1. short int
  2. int
  3. long int

A short int requires half the amount of storage than normal integer. The long integers are used to declare a longer range of values and it occupies 4 bytes of storage space.

All three data types have signed and unsigned forms.

  • Unlike signed integers, unsigned integers are always positive and use all the bits for the magnitude of the number. Therefore the range of an unsigned integer will be from 0 to 65535.

Syntax: int <variable name>; like
int num1;
short int num2;
long int num3;

Example: 5, 6, 100, 2500.

Integer Data Type Memory Allocation


Primary Data Types in C: Float

  • The float data type is used to store fractional numbers (real numbers) within 6 digits of precision.
  • Floating point numbers are denoted by the keyword float.
  • When the accuracy of the floating point number is insufficient, we can use the specifier "double" to define the number. “Double” is the same as “float” but has double the precision and takes up twice as much memory space (8 bytes) as float.
  • For even more precision we can use “long double” which occupies 10 bytes of memory space.

Syntax: float <variable name>;

float num1;
double num2;
long double num3;

Example: 9.125, 3.1254.

Floating Point Data Type Memory Allocation

Memory allocation of float data in C.

Memory allocation of float data in C.

Scroll to Continue

Primary Data Types in C: Character

  • The character type variable can hold a single character.
  • "Char," like "int," may be singed or unsigned. Both signed and unsigned occupy 1 byte each but have different ranges. Unsigned characters have values between 0 and 255; signed characters have values from –128 to 127.
  • Denoted by char.

Syntax: char <variable name>;

char ch = ‘a’;

Example: a, b, g, S, j.

Primary Data Types in C: Void

  • The “void” data type returns no data; it is not a variable like the other types. It may be used with functions that need to be run without returning any values.
  • For example, we can declare “main()” as a void type because it does not return any value.

User-Defined Type Declaration in C Language

C language supports a feature where the user can define the identifier that characterizes an existing data type. This user-defined data type identifier can later be used to declare variables. In short, its purpose is to redefine the name of an existing data type.

Syntax: typedef <type> <identifier>;

Example: typedef int number;

Now we can use number in lieu of int to declare integer variable. For example: if we enter int x1 or number x1 both statements declare an integer variable. We have just changed the default keyword int to declare integer variable as number.

Size and Range of Data Types in C Language

This chart shows you how much space each data type like int, char, float occupies in memory, along with its data range and the keyword used by the C programmer.

This chart shows you how much space each data type like int, char, float occupies in memory, along with its data range and the keyword used by the C programmer.

Secondary Data Types in C Language

  • Arrays: collections of data of a similar type.
  • Pointers: a way to refer to information by referring to the address where the information is kept.
  • Structures: a way of associating data of different types.
  • Unions: a way of allowing the same data to be read as data of different types.
  • 2d Array in C Programming Language
    We know how to work with an array (1d array) with one dimension. In C language it is possible to have more than one dimension in an array. This tutorial explains how we can use two dimensional arrays (2D array or matrix array) to store values with ex
  • String and String Pointer in C Programming Language
    String program in C language could be little tricky and this tutorial aims to simplify it. This tutorial explains how to use character array & pointer to store and retrieve string along with different ways to read string input from user.
  • Loop in C Programming Language
    Loop is one of the important parts of C language and study of C language is incomplete without this. So let’s head towards completion of our knowledge about C language. As a dedicated C language leaner, right now you should have two questions. What i
  • Functions in C Programming Language
    A function in C language is a block of code that performs a specific task. It has a name and it is reusable i.e. it can be executed from as many different parts in a C Program as required. It also optionally returns a value to the calling program So
  • What Is an Array in C Programming Language
    what is an array in c programming, this tutorial explains it with example and line by line explanation.



Obzy on June 29, 2017:

What is the size and range of viod

diksha koushal on January 20, 2015:

its nice

nicomp really from Ohio, USA on January 13, 2015:

The char type should not be confused with a character. It's simply a 1-byte integer, usually. It can 'hold' any integer value within the given range. A one-byte signed char, for example, has the range -128 through +127.

Aadil Syed on September 10, 2014:

awesom programing c but its vry complicated......

nikita on July 25, 2013:

thanks for information

ss on July 23, 2013:

its nice

mushkin on July 07, 2013:

thanks its very easy to understand,not any confuse

rajendra on June 22, 2013:

please give me all notes of c langauge with programme........

manjunath on June 22, 2013:

its very useful to students thank u

udhayan on May 05, 2013:

than q very much....this helped me a lot:)))

sania angle on February 16, 2013:

thank u..............

RAJKISHOR SAHU (author) from Bangalore, Karnataka, INDIA on January 24, 2013:

Well said @sonuxrt, I published this article on this site on 04/07/2009 and that site came into existence on Sat, 26 Nov 11 11:14:14 +0400 see link I didn't know know that I am so good in copying content :P.

sonuxrt on January 22, 2013:

Don't copy from another website

Programminghub from India on January 19, 2013:

Really a nice post Dear...:)

I created a facebook, from where you can download lots of free ebooks and tutorials....(in a single click only..)

C, C++ and JAVA programming tutorials + Much More..

Thank You Raj Kishor..

ALI on December 01, 2012:


Pinku Hazra on September 06, 2012:

By this answer am very helpful,..thanks keep on.

ramesh on July 12, 2012:


ian05 on July 07, 2012:

very helpful... keep it up, do some more... great job.

jhezrylle on June 20, 2012:

anu po ung mga Variables ng c language?/

jawadmalik on June 20, 2012:

its working ... :)

RAJKISHOR SAHU (author) from Bangalore, Karnataka, INDIA on April 30, 2012:

thanks for visiting my friend...

waqas Amanat on April 29, 2012:

its really a very helpful for students & others. it helped me a lot in my exams..thankx a lot

Masabo Christophe on April 19, 2012:

thank you for teaching, then you add more programms


simran on April 03, 2012:

thanks for uploading this information

really its very help me

abhinav vats on March 30, 2012:

it is very helpful so plz keep it up

magoo on March 27, 2012:

that was short and precise, thank you!

Hasnain on March 26, 2012:

If any one have any good material regarding c & c++,plz send me at

Ramisha Rukhsar on March 15, 2012:

plz tell me about the problems of floating point used in c programming language.plz tell me ans as soon as possible

monisha on March 12, 2012:

what is abstract datatype?

Arun Mavi on March 12, 2012:

It is hard for UP board students only otherwise it is easy

priyanka on March 03, 2012:

Thanks, it helps me a lot

Java Programs from India on February 26, 2012:

Excellent hub on Data types in C.... I am also a software developer and have started writing for hubpages under category of Java. I have published my first hubs as :

have a look .... Thanks for the wonderful information...

ankur on February 25, 2012:

can u tell me where the data type store in comp.memory

jaswant kumar on February 17, 2012:

i think four batter c program tools this web site

anchal on February 17, 2012:

kuch samajh nah araha

santhosh kumar on February 15, 2012:

it's intresting..... but i dnt know c program.....

pls help me....

raj on February 06, 2012:

why we need range for datatype like int as -32708 to 32627?

mekhzam on February 02, 2012:

this is very nice

Ajay bidhauliya on February 02, 2012:

need to few is described

Ajay PAtil on February 01, 2012:

@rajkishor09 ::::::::::::::?????????????????

if knw the correct ans den only post otherwise don't post..............don't misguide to people.......plz

who told u dat structure is NOT user defined data type,,,,,,,,,,,,,,,,,,,,buddy

its user defined data type ..pgmer only define types of variables which u plzzzzzzzzzzz u knw correcr n accurate ans den post otherwise don't post

kalpana on January 28, 2012:

so confuse and so boring

ravi ranjan on January 27, 2012:


fahad akhtar from pakistan on January 24, 2012:

plzzzz give me about the idea of modulus in algorithm

sree on January 24, 2012:

i dont know to do the programs,so plz give me a suggestion to over come the problem

Md Ali Umar on January 20, 2012:

for double %lf & for long double %Lf, for short signed int %d, short unsigned int %u.




INSI on January 19, 2012:


dude on January 17, 2012:

how can i print these data types i mean like %d for integer... what for double, long double and short int etc

supriya,s.p.jain college on January 15, 2012:

thank's for deeply information on January 11, 2012:

thankyou very much...............this provides us many hints for further study

Nibedita Swain on January 04, 2012:

What variable? explane pointer variable

md wakash ahmad on January 04, 2012:

why uses # in c program

please reply this topic on that site

kanchan Pande on December 29, 2011:

Can any one tell me,that there are how many data types included in C and C#.

Sanket Sathe on December 26, 2011:


sanjeev kumar on December 22, 2011:

i am define int a=015 and print the value is 13 why plz rply me urgently

kamaluddin ahmed on December 20, 2011:

i want to make indian national flag but how ,i have no idea ,please give me some tips on December 19, 2011:

what's the mean by recursion?

aruna devi on December 18, 2011:

what are data types in c?

krish on December 16, 2011:

very fine historical and briefly knowledge of c. good one

codeguru on December 15, 2011:

this article is so so not good

arvnagendrakumar5 on December 01, 2011:

i love c programs

bk on November 30, 2011:

Too nice sis it is very koalaveru da

adil khan on November 30, 2011:

no compiler not depend on variable..........

Raj on November 29, 2011:

am a student of cse but from bio background so plz help me my email id

mobigujjar on November 29, 2011:

I m a stdnt of BS(IT)

plz u help me in this field