Constants in C++ | Literals in C++
In this article, we will learn about constants and literals in C++.
What are Constants in C++?
Constants are expressions whose values remain fixed. Once defined, we cannot change the value of a constant.
What are Literals in C++?
The fixed value assigned to a constant is called literal. For example, in constant expression const int x = 10; the value 10 is called constant integer literal.
Following are the types of literals:
1. Integer Literals in C++
An integer is a numeric literal that does not contain any fractional or exponential parts. Integer literals are expressed as:
a. Prefix
It specifies the base or radix. These are of four types: no prefix for decimal (base 10), 0 for octal (base 8), 0x or 0X for hexadecimal (base 16) and 0b or 0B for binary (base 2).
For example:
- Decimal: 97, 3, -62, etc.
- Octal: 04, 021, 0743, etc.
- Hexadecimal: 0x2, 0X4a, 0x56c, etc.
- Binary: 0b10, 0B1011, 0b110, etc.
b. Suffix
It represents the type, u or U for unsigned, l or L for long and combination of both.
For example:
- 42 //int requires no suffix
- 42u //unsigned int
- 42ul //unsigned long
- 42L //long
- 42ll //long long
2. Floating-point Literals in C++
Floating-point literals, which represent real numbers, have an integer part, a real component, a fractional component, and an exponential part. We can store it either in decimal or in exponential form.
We must remember that
- The decimal point, exponential part, or both must be included in the decimal form; otherwise, an error will occur.
- In the exponential form, the integer, fractional, or both parts must be included; otherwise, an error will occur.
Some examples of valid floating-point literals are 12.365, 2.67E-6, etc.
Some examples of invalid floating-point literals are 256E, 0.e34, etc.
3. Character Literals in C++
Character literals store a single character enclosed within a single quote. These have two representations:
- Normal or narrow character literal of char type. For example, ‘i’.
- Wide character literal of wchar_t type which begins with uppercase L. For example, L’i’.
There are various characters in C++ that have special meaning. These character literals are Escape Sequences. Following is a list of some escape sequences in C++.
Escape Sequence | Meaning |
\a | Alert or beep |
\b | Backspace |
\f | Form feed |
\n | Newline |
\r | Carriage return |
\t | Horizontal tab |
\v | Vertical tab |
\\ | Backlash |
\’ | Single quote |
\” | Double quote |
\? | Question mark |
\0 | Null character |
\ooo | Octal number |
\xhh | Hexadecimal number |
Example to illustrate the use of escape sequences in C++
#include <iostream> using namespace std; int main() { cout<<"TechVidvan\nGoogle\n"; cout<<"Tech\tVidvan"; return 0; }
Output
4. String Literals in C++
String literals store multiple characters enclosed in double quotes. They can also include special characters, escape sequences and whitespaces.
For example: “TechVidvan”, “Data Flair”, “Hello World!\n”, etc.
5. Boolean Literals in C++
These represent boolean values, which are of two types:
true: represents true value. We should not consider its value equal to int 1.
false: represents false value. We should not consider its value equal to int 0.
Defining Constants in C++
We can define a constant in one of the two ways,
1. Using const keyword
We can define a constant using const keyword as prefix.
Syntax:
const datatype name = value;
Example to define constants using const
#include <iostream> using namespace std; int main() { const int a = 10; //integer literal = 10 const float b = 50.74; //floating point literal = 50.74 const char newline = '\n'; //character literal = \n cout<<"Defined constants:"<<newline; cout<<a<<newline; cout<<b; return 0; }
Output
10
50.74
Let’s try to modify value of a constant
#include <iostream> using namespace std; int main() { const int a = 10; a = 20; cout<<a; return 0; }
Status Compilation error
Output
error: assignment of read-only variable ‘a’
We get a compilation error that variable a is read-only.
2. Using #define preprocessor directive
We can use #define preprocessor directive to declare constants.
Syntax:
#define name value
Example to define constants using #define
#include <iostream> using namespace std; #define length 12.5 #define breadth 8 #define unit "m sq." int main() { double area; area = length * breadth; cout<<area<<" "<<unit; return 0; }
Output
Summary
In this article, we learnt what constants are. We talked about literals in C++. Literals can be of integer, floating-point, character, string or boolean type. There are two ways in which we can define constants. Using suitable examples, we learnt both these ways.