C++ Data Types: int, float, double, char, bool, string

C++ is a powerful programming language widely used for system programming, game development, and performance-critical applications. For anyone starting out, understanding C++ data types is the most important first step. Data types define the nature of the data a variable can hold, such as numbers, characters, or logical values. This guide will walk you through the essential C++ data types: int, float, double, char, bool, and string, with clear explanations and examples.

🔹 Quick Reference Table

Data TypeDescriptionExample
intWhole numbers10, -5, 0
floatSingle-precision decimal numbers3.14f, -0.5f
doubleDouble-precision decimal numbers3.14159
charA single character'A', '$'
boolLogical true or falsetrue, false
std::stringA sequence of characters (text)"Hello, World!"

Integer Data Type

The int data type is used to store whole numbers (integers) without any fractional parts. It can hold both positive and negative values. On most modern systems, an int occupies 4 bytes of memory.

When to use it: For counting items, storing age, user IDs, or any other whole number quantity.

#include <iostream>
int main() {
    int numberOfApples = 12;
    int temperature = -5;
    std::cout << "You have " << numberOfApples << " apples." << std::endl;
    std::cout << "The temperature is " << temperature << " degrees." << std::endl;
    return 0;
}

Output

You have 12 apples.
The temperature is -5 degrees.

Floating-Point Data Type

The float data type is used to store decimal numbers with single precision. This means it’s less precise than a double but uses less memory (typically 4 bytes).

When to use it: For values where high precision is not critical, such as game coordinates or simple financial calculations.

#include <iostream>
#include <iomanip> // For std::fixed
int main() {
    float price = 99.99f; // The 'f' suffix is good practice for floats
    std::cout << std::fixed; // Ensures decimal is shown
    std::cout << "Price: $" << price << std::endl;
    return 0;
}

Output

Price: $99.990000

Double-Precision Floating-Point Type

The double data type offers approximately twice the precision of a float and is the default choice for decimal numbers in C++. It usually occupies 8 bytes of memory.

When to use it: For scientific calculations, financial data, and any situation where decimal accuracy is crucial.

#include <iostream>
#include <iomanip> // For std::setprecision
int main() {
    double pi = 3.14159265359;
    std::cout << std::fixed << std::setprecision(10);
    std::cout << "The value of Pi is approximately: " << pi << std::endl;
    return 0;
}

Output

The value of Pi is approximately: 3.1415926536

Character Data Type

The char data type is used to store a single character, such as a letter, digit, or symbol. It takes up just 1 byte of memory. Character literals are always enclosed in single quotes (' ').

When to use it: For storing initials, grades, or menu selections.

#include <iostream>
int main() {
    char grade = 'A';
    char symbol = '$';
    std::cout << "Your grade is: " << grade << std::endl;
    std::cout << "The currency symbol is: " << symbol << std::endl;
    return 0;
}

Output

Your grade is: A
The currency symbol is: $

Boolean Data Type

The bool data type can only hold two values: true or false. It is the foundation of logic in programming and is essential for controlling program flow with conditional statements (like if) and loops.

When to use it: For flags that track a state, like isLoggedIn, hasPowerUp, or isGameOver.

#include <iostream>
int main() {
    bool isCompleted = false;
    // By default, cout prints 0 for false and 1 for true
    std::cout << "Task completed (0 for false): " << isCompleted << std::endl;
    
    // Use std::boolalpha to print "true" or "false"
    isCompleted = true;
    std::cout << std::boolalpha;
    std::cout << "Task completed: " << isCompleted << std::endl;
    return 0;
}

Output

Task completed (0 for false): 0
Task completed: true

String Data Type

The std::string type is used to store a sequence of characters (text). Unlike the other types, it is not built-in but part of the C++ Standard Library. You must include the <string> header to use it. String literals are enclosed in double quotes (" ").

When to use it: For storing names, messages, file paths, or any other textual data.

#include <iostream>
#include <string> // Don't forget this header!
int main() {
    std::string greeting = "Hello, C++ learner!";
    std::cout << greeting << std::endl;
    return 0;
}

Output

Hello, C++ learner!

Conclusion

Choosing the right data type is a fundamental skill in C++. Using the correct type—int, float, double, char, bool, or string—ensures your program uses memory efficiently, performs calculations accurately, and behaves predictably. As you grow as a C++ developer, you’ll discover more advanced types, but mastering these basics is the perfect place to start.

Frequently Asked Questions (FAQ)

Q: What is the difference between float and double?

A: The primary difference is precision. A double can store decimal numbers with much greater accuracy than a float. Use double for most decimal calculations unless you have a specific reason to save memory.

Q: Can I store a sentence in a char?

A: No. A char can only hold a single character. For sentences or any other text, you must use the std::string data type.

Q: Which numeric type should I use by default?

A: Use int for whole numbers and double for decimal numbers. They are the general-purpose default choices in modern C++.

About RadiantRiva

Your go-to resource for coding tutorials, developer guides, and programming tips.

Learn More

Quick Links

Follow Us

Newsletter

Get coding tips, tutorials, and updates straight to your inbox.