
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Hello World
- C++ Omitting Namespace
- C++ Tokens
- C++ Constants/Literals
- C++ Keywords
- C++ Identifiers
- C++ Data Types
- C++ Numeric Data Types
- C++ Character Data Type
- C++ Boolean Data Type
- C++ Variable Types
- C++ Variable Scope
- C++ Multiple Variables
- C++ Basic Input/Output
- C++ Modifier Types
- C++ Storage Classes
- C++ Numbers
- C++ Enumeration
- C++ Enum Class
- C++ References
- C++ Date & Time
- C++ Operators
- C++ Arithmetic Operators
- C++ Relational Operators
- C++ Logical Operators
- C++ Bitwise Operators
- C++ Assignment Operators
- C++ sizeof Operator
- C++ Conditional Operator
- C++ Comma Operator
- C++ Member Operators
- C++ Casting Operators
- C++ Pointer Operators
- C++ Operators Precedence
- C++ Unary Operators
- C++ Control Statements
- C++ Decision Making
- C++ if Statement
- C++ if else Statement
- C++ Nested if Statements
- C++ switch Statement
- C++ Nested switch Statements
- C++ Loop Types
- C++ while Loop
- C++ for Loop
- C++ do while Loop
- C++ Foreach Loop
- C++ Nested Loops
- C++ break Statement
- C++ continue Statement
- C++ goto Statement
- C++ Strings
- C++ Strings
- C++ Loop Through a String
- C++ String Length
- C++ String Concatenation
- C++ String Comparison
- C++ Functions
- C++ Functions
- C++ Multiple Function Parameters
- C++ Recursive Function
- C++ Return Values
- C++ Function Overloading
- C++ Function Overriding
- C++ Default Arguments
- C++ Arrays
- C++ Arrays
- C++ Multidimensional Arrays
- C++ Pointer to an Array
- C++ Passing Arrays to Functions
- C++ Return Array from Functions
- C++ Structure & Union
- C++ Structures
- C++ Unions
- C++ Pointers
- C++ Pointers
- C++ Dereferencing
- C++ Modify Pointers
- C++ Class and Objects
- C++ Object Oriented
- C++ Classes & Objects
- C++ Class Member Functions
- C++ Class Access Modifiers
- C++ Static Class Members
- C++ Static Data Members
- C++ Static Member Function
- C++ Inline Functions
- C++ this Pointer
- C++ Friend Functions
- C++ Pointer to Classes
- C++ Constructors
- C++ Constructor & Destructor
- C++ Default Constructors
- C++ Parameterized Constructors
- C++ Copy Constructor
- C++ Constructor Overloading
- C++ Constructor with Default Arguments
- C++ Delegating Constructors
- C++ Constructor Initialization List
- C++ Dynamic Initialization Using Constructors
- C++ Object-oriented
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
- C++ Virtual Function
- C++ Pure Virtual Functions & Abstract Classes
- C++ File Handling
- C++ Files and Streams
- C++ Reading From File
- C++ Advanced
- C++ Exception Handling
- C++ Dynamic Memory
- C++ Namespaces
- C++ Templates
- C++ Preprocessor
- C++ Signal Handling
- C++ Multithreading
- C++ Web Programming
- C++ Socket Programming
- C++ Concurrency
- C++ Advanced Concepts
- C++ Lambda Expression
- C++ unordered_multiset
C++ Boolean (bool) Data Type
The bool data type in C++ stands for Boolean values, which are True and False. In C++, 1 stands for True whereas 0 stands for False. The keyword "bool" is used to declare a Boolean data type. The addition of bool data type is a one of the newer features of C++ language.
Use of Boolean Data Type
The Boolean (bool) data type is used in the following ways −
- In conditions where we need to have binary values, i.e., values which represent two states of a variable.
- When we need to run loops based on certain conditions, we use bool data types.
- In case of having null values, we generally relate them to bool data types.
- For comparing two values for equality or inequality, we generally use bool data types.
Values of Boolean (bool) Data Type
The bool data types in C++ can have one of two values, and these values are as follows −
- True or 1
- False or 0
As stated earlier, Boolean 1 means true whereas Boolean 0 means false in C++ compilation.
Creating a Boolean Variable
We can declare a Boolean variable using the "bool" keyword followed by the variable name.
Syntax
Use the following syntax to create a Boolean type variable −
bool variable_name = [value];
Here, [value] is an optional and can be used to assign value during the declaration.
Example
In the following examples, we are declaring a Boolean variable, assigning a value to it.
// C++ program to demonstrate // bool data type #include <iostream> using namespace std; // Driver code int main() { bool flag; flag=1;//this is true cout<<flag; return 0; }
Example of bool Data Type
The following example demonstrate the use of Boolean (bool) data type −
// C++ program to demonstrate // bool data type #include <iostream> using namespace std; int main(){ bool flag; flag=1;//this is true bool flag1=true; cout<<flag<<" "<<flag1<<endl; int count=0; while(flag){ //condition where flag is true count++; if(count>=3) flag=false; } cout<<count<<" "<<flag<<endl; if(flag1) cout<<"True flag1"<<endl; else cout<<"False flag1"<<endl; return 0; }
Output
1 1 3 0 True flag1
Implicit Conversion of Bool Variables
Boolean data types can be implicitly converted to numeric data types, and vice-versa. This is possible as any value greater than 0 has a Boolean true value, whereas any value less than or equal to 0 has a Boolean false value.
Also, the Boolean values can be added in form of integers to integral variables, using implicit conversion techniques. Hence, when we add a Boolean value to an integer, it gets incremented by 1 if the value is true, otherwise it remains same as false value corresponds to 0.
Example
This is clearly explained in the examples given below −
// C++ program to demonstrate // bool data type #include <iostream> using namespace std; int main() { bool flag; flag=1;//this is true bool flag1=true; cout<<flag<<" "<<flag1<<endl; int count=0; int x=12; float y=35.45; bool k=count, k1=x, k2=y; int sum=x+flag+flag1; cout<<k<<" "<<count<<" "<<k1<<" "<<x<<" "<<k2<<" "<<y<<" "<<endl; cout<<After adding Boolean and integer values : << sum<<endl; return 0; }