C++ Data Types
In this tutorial, we will learn about basic data types such as int, float, char, etc. in C++ programming with the help of examples.
In C++, data types are declarations for variables. This determines the type and size of data associated with variables. For example,
int age = 13;
Here, age is a variable of type int
. Meaning, the variable can only store integers of either 2 or 4 bytes.
C++ Fundamental Data Types
The table below shows the fundamental data types, their meaning, and their sizes (in bytes):
Data Type | Meaning | Size (in Bytes) |
---|---|---|
int |
Integer | 2 or 4 |
float |
Floating-point | 4 |
double |
Double Floating-point | 8 |
char |
Character | 1 |
wchar_t |
Wide Character | 2 |
bool |
Boolean | 1 |
void |
Empty | 0 |
Now, let us discuss these fundamental data types in more detail.
1. C++ int
- The
int
keyword is used to indicate integers. - Its size is usually 4 bytes. Meaning, it can store values from -2147483648 to 2147483647.
- For example,
int salary = 85000;
2. C++ float and double
float
anddouble
are used to store floating-point numbers (decimals and exponentials).- The size of
float
is 4 bytes and the size ofdouble
is 8 bytes. Hence,double
has two times the precision offloat
. To learn more, visit C++ float and double. - For example,
float area = 64.74;
double volume = 134.64534;
As mentioned above, these two data types are also used for exponentials. For example,
double distance = 45E12 // 45E12 is equal to 45*10^12
3. C++ char
- Keyword
char
is used for characters. - Its size is 1 byte.
- Characters in C++ are enclosed inside single quotes
' '
. - For example,
char test = 'h';
Note: In C++, an integer value is stored in a char
variable rather than the character itself. To learn more, visit C++ characters.
4. C++ wchar_t
- Wide character
wchar_t
is similar to thechar
data type, except its size is 2 bytes instead of 1. - It is used to represent characters that require more memory to represent them than a single
char
. - For example,
wchar_t test = L'ם' // storing Hebrew character;
Notice the letter L before the quotation marks.
Note: There are also two other fixed-size character types char16_t
and char32_t
introduced in C++11.
5. C++ bool
- The
bool
data type has one of two possible values:true
orfalse
. - Booleans are used in conditional statements and loops (which we will learn in later chapters).
- For example,
bool cond = false;
6. C++ void
- The
void
keyword indicates an absence of data. It means "nothing" or "no value". - We will use void when we learn about functions and pointers.
Note: We cannot declare variables of the void
type.
Putting it all together
Run the following repl to see its results. Looking at the main.cpp
file, a range of variables of different data types are declared at the top.
cout
is used with the +
operator to output the sum of two integers. cout
is also used to display a message that includes the contents of the string variables, and lastly an if statement is used to present a message based on which letter is stored in the char variable.
Try doing each of the following, running the between each change:
- Change the string variables to reflect your name
- Change the values of the integers
- Change the operator used in the output to
*
- Change the letter stored in the char variable to a grade you would like to receive
- Change the integer variables to float, and assign decimal values.
C++ Type Modifiers
We can further modify some of the fundamental data types by using type modifiers. There are 4 type modifiers in C++. They are:
signed
unsigned
short
long
We can modify the following data types with the above modifiers:
int
double
char
C++ Modified Data Types List
Data Type | Size (in Bytes) | Meaning |
---|---|---|
signed int |
4 | used for integers (equivalent to int ) |
unsigned int |
4 | can only store positive integers |
short |
2 | used for small integers (range -32768 to 32767) |
unsigned short |
2 | used for small positive integers (range 0 to 65,535) |
long |
at least 4 | used for large integers (equivalent to long int ) |
unsigned long |
4 | used for large positive integers or 0 (equivalent to unsigned long int ) |
long long |
8 | used for very large integers (equivalent to long long int ). |
unsigned long long |
8 | used for very large positive integers or 0 (equivalent to unsigned long long int ) |
long double |
12 | used for large floating-point numbers |
signed char |
1 | used for characters (guaranteed range -127 to 127) |
unsigned char |
1 | used for characters (range 0 to 255) |
Let's see a few examples.
long b = 4523232;
long int c = 2345342;
long double d = 233434.56343;
short d = 3434233; // Error! out of range
unsigned int a = -5; // Error! can only store positive numbers or 0
Derived Data Types
Data types that are derived from fundamental data types are derived types. For example: arrays, pointers, function types, structures, etc.
We will learn about these derived data types in later tutorials.