Data Types available in C++

Data types in any of the language mean that what are the various type of data the variables can have in that particular language. Information is stored in a computer memory with different data types. Whenever a variable is declared it becomes necessary to define the data type that what will be the type of data that variable can hold.

Data Types available in C++:
  1. Primary(Built-in) Data Types:
    • character
    • integer
    • floating point
    • boolean
    • double floating point
    • void
    • wide character
  2. User Defined Data Types:
    • Structure
    • Union
    • Class
    • Enumeration
  3. Derived Data Types:
    • Array
    • Function
    • Pointer
    • Reference

Both C and C++ compilers support the fundamental i.e. the built-in data types. Taking void as exception, the basic data types may have several modifiers, and these modifiers are used to serve the data types in various situations.

The lists of modifiers used in C++ are:
  • signed
  • unsigned
  • long
  • short

Character Data Types

Data Type (Keywords)DescriptionSizeTypical Range
charAny single character. It may include a letter, a digit, a punctuation mark, or a space.1 byte-128 to 127 or 0 to 255
signed charSigned character.1 byte-128 to 127
unsigned charUnsigned character.1 byte0 to 255
wchar_tWide character.2 or 4 bytes1 wide character

Integer Data Types

Data Type (Keywords)DescriptionSizeTypical Range
intInteger.4 bytes-2147483648 to 2147483647
signed intSigned integer. Values may be negative, positive, or zero.4 bytes-2147483648 to 2147483647
unsigned intUnsigned integer. Values are always positive or zero. Never negative.4 bytes0 to 4294967295
shortShort integer.2 bytes-32768 to 32767
signed shortSigned short integer. Values may be negative, positive, or zero.2 bytes-32768 to 32767
unsigned shortUnsigned short integer. Values are always positive or zero. Never negative.2 bytes0 to 65535
longLong integer.4 bytes-2147483648 to 2147483647
signed longSigned long integer. Values may be negative, positive, or zero.4 bytes-2147483648 to 2147483647
unsigned longUnsigned long integer. Values are always positive or zero. Never negative.4 bytes0 to 4294967295

Floating-point Data Types

Data Type (Keywords)DescriptionSizeTypical Range
floatFloating point number. There is no fixed number of digits before or after the decimal point.4 bytes+/- 3.4e +/- 38 (~7 digits)
doubleDouble precision floating point number. More accurate compared to float.8 bytes+/- 1.7e +/- 308 (~15 digits)
long doubleLong double precision floating point number.8 bytes+/- 1.7e +/- 308 (~15 digits)

Boolean Data Type

Data Type (Keywords)DescriptionSizeTypical Range
boolBoolean value. It can only take one of two values: true or false.1 bytetrue or false

Below example will produce correct size of various data type, on your computer.

#include <iostream>using namespace std;int main() { cout << "Size of char is " << sizeof(char) << endl; cout << "Size of int is " << sizeof(int) << endl; cout << "Size of float is " << sizeof(float) << endl; cout << "Size of short int is " << sizeof(short int) << endl; cout << "Size of long int is " << sizeof(long int) << endl; cout << "Size of double is " << sizeof(double) << endl; cout << "Size of wchar_t is " << sizeof(wchar_t) << endl; return 0;}
Program Output:
Size of char is 1Size of int is 4Size of float is 4Size of short int is 2Size of long int is 4Size of double is 8Size of wchar_t is 4

Enum Data Type

This is an user defined data type having finite set of enumeration constants. The keyword ‘enum‘ is used to create enumerated data type.


enum enum-name {list of names}var-list;
enum mca(software, internet, seo);


It is used to create new data type. But it is commonly used to change existing data type with another name.


typedef [data_type] synonym;


typedef [data_type] new_data_type;
typedef int integer;integer rollno;
0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *

13 − 4 =