Data types in any programming language mean that what are the various types of data variables can have in that particular language. C++ data types define the type of data that variables can hold.
Information is stored in computer memory along with different data types. Whenever a variable is declared, it becomes necessary to define a data type that will be the type of data that the variable can hold.
- Primary(Built-in) Data Types:
- character
- integer
- floating point
- boolean
- double floating point
- void
- wide character
- User Defined Data Types:
- Structure
- Union
- Class
- Enumeration
- 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 an exception, the basic data types may have several modifiers that serve the data types in various situations.
signed
unsigned
long
short
Character Data Types
Data Type (Keywords) | Description | Size | Typical Range |
---|---|---|---|
char
| Any 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 char
| Signed character. | 1 byte | -128 to 127 |
unsigned char
| Unsigned character. | 1 byte | 0 to 255 |
wchar_t
| Wide character. | 2 or 4 bytes | 1 wide character |
Integer Data Types
Data Type (Keywords) | Description | Size | Typical Range |
---|---|---|---|
int
| Integer. | 4 bytes | -2147483648 to 2147483647 |
signed int
| Signed integer. Values may be negative, positive, or zero. | 4 bytes | -2147483648 to 2147483647 |
unsigned int
| Unsigned integer. Values are always positive or zero. Never negative. | 4 bytes | 0 to 4294967295 |
short
| Short integer. | 2 bytes | -32768 to 32767 |
signed short
| Signed short integer. Values may be negative, positive, or zero. | 2 bytes | -32768 to 32767 |
unsigned short
| Unsigned short integer. Values are always positive or zero. Never negative. | 2 bytes | 0 to 65535 |
long
| Long integer. | 4 bytes | -2147483648 to 2147483647 |
signed long
| Signed long integer. Values may be negative, positive, or zero. | 4 bytes | -2147483648 to 2147483647 |
unsigned long
| Unsigned long integer. Values are always positive or zero. Never negative. | 4 bytes | 0 to 4294967295 |
Floating-point Data Types
Data Type (Keywords) | Description | Size | Typical Range |
---|---|---|---|
float
| Floating point number. There is no fixed number of digits before or after the decimal point. | 4 bytes | +/- 3.4e +/- 38 (~7 digits) |
double
| Double precision floating point number. More accurate compared to float. | 8 bytes | +/- 1.7e +/- 308 (~15 digits) |
long double
| Long double precision floating point number. | 8 bytes | +/- 1.7e +/- 308 (~15 digits) |
Boolean Data Type
Data Type (Keywords) | Description | Size | Typical Range |
---|---|---|---|
bool
| Boolean value. It can only take one of two values: true or false .
| 1 byte | true or false |
Variables sizes might differ in your PC from those shown in the above table, depending on the compiler you are using.
The below example will produce the correct size of various data types on your computer:
Example:
#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 1 Size of int is 4 Size of float is 4 Size of short int is 2 Size of long int is 4 Size of double is 8 Size of wchar_t is 4
Enum Data Type
This is a user-defined data type having a finite set of enumeration constants. The keyword 'enum
' is used to create an enumerated data type.
Syntax:
enum enum-name {list of names}var-list;
enum mca(software, internet, seo);
Typedef
It is used to create a new data type. But it is commonly used to change the existing data type with another name.
Syntax:
typedef [data_type] synonym;
or
typedef [data_type] new_data_type;
Example:
typedef int integer;
integer rollno;