Open In App

Constants in C++

Last Updated : 25 Nov, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Constants in C++ refer to variables with fixed values that cannot be changed. Once they are defined in the program, they remain constant throughout the execution of the program. They can be of any available data type in C++ such as int, char, string, etc.

Let's take a look at an example:

C++
#include <iostream>
using namespace std;

int main() {

    // Declaring and defining a constant variable
    const int c = 24;

  	cout << c;
    return 0;
}

Output
24

In the above code, the variable c is constant. It stored as read-only tokens in the code segment of the memory of the program.

Types of Constants in C++

In C++, constants can be classified on the basis of the way using which they are created. In C++, constants can be defined using three ways:

  1. Using const Keyword
  2. Using constexpr Keyword
  3. Using #define Preprocessor

Using const Keyword

Defining constants using const keyword is one of the older methods that C++ inherited from C language. In this method, we add the const keyword in the variable definition as shown below:

Syntax

const DATATYPE variable_name = value;

We have to initialize the constant variable at the time of declaration as we cannot modify the value of it later in the program.

Example

C++
#include <iostream>
using namespace std;

int main() {
    int var = 10;

    // Declaring a constant variable
    const int c = 24;

    // Trying to change the value constant c
    c = 0;

    cout << c;
    return 0;
}


Output

./Solution.cpp: In function 'int main()':
./Solution.cpp:19:10: error: assignment of read-only variable 'cons'
     cons = 0;

Using constexpr Keyword

The constexpr keyword is similar to const keyword and is also used to declare constants in C++. But the major difference is that the constexpr constants are initialized at compiler time, which is why their value must be known at the compile time. On the other hand, const keyword constants can be initialized at runtime and compile time.

Syntax

constexpr DATATYPE variable_name = value ;

Example

C++
#include <iostream>
using namespace std;

int main() {
  
    // Defining constant
    int constexpr hoursIn_day = 24;

    // Printing value
    cout << hoursIn_day;
  	return 0;
}

Output
24

The above snippet uses the constexpr keywords to define constant the number of hours in a day (hoursIn_day)

Using #define Preprocessor

We can also define constants using the #define. Constants created using the #define preprocessor are called "macro constants". Unlike the other methods, constants defined using this method simply work as an alias for their value which is substituted during preprocessing.

It is the less preferable way to define a constant in C++ due to the lack of type safety.

Syntax

#define MACRO_NAME replacement_value

Example

C++
#include <iostream>
using namespace std;

// Using #define to create a macro
#define Side 5

int main()
{
    // Using constant
    double area = Side * Side;

    cout << area;
    return 0;
}

Output
25

Explanation: We have defined the macro constant Side with the value of 5. We then used it to find the area of the square. The macro constant Side is global meaning it is not restricted to a single function. Also, note that we cannot get user input for the macro constant.

Important Points about Constants

The following are some major properties of C++ constants discussed in the article:

  • Constants are the variables with fixed values.
  • We have to initialize the constants at the time of declaration, and we cannot change this value later in the program.
  • const and constexpr can be used to define a constant.
  • #define is also used to define a macro constant.

Next Article
Article Tags :
Practice Tags :

Similar Reads