C++ Variables and Data Types

In this lesson, you will learn about Variables and different Data Types in C++ and their usages, characteristics, and best practices. Data Types are used when you want to declare a variable, depending on what you are trying to store in that variable. For example, If you are trying to hold a “Name” value in a variable, then the Data Type for your variable should be a string.


What is a variable in C++?

Variables are declared in a program to store information while the program is running. A variable is memory location to store a value, such as a name, date of birth, address, age, etc.

The compiler will reset a variable value to its default value when the program is terminated. For example, a variable FirstName value is an empty string after the program execution is over. Thus, variables are only temporary elements to store information needed to run and execute a program the right way.

More like this:


Variable naming constraints in C++

The following are constraints when you declare a variable in C++:

  • Variable names in C++ are case sensitive. For example, FirstName is not the same as firstName
  • A Variable name in C++ can range between 1 to 255 characters.
  • A variable name must begin with a letter or an underscore; a variable in C++ cannot start with a number or any other special character.
  • A variable in C++ can contain a number.
  • A variable in C++ cannot contain spaces or special characters other than the underscore (_).
  • You cannot use C++ Keywords or reserved as a variable name.

C++ variable naming best practice

Use meaningful names

When declaring a variable, use what makes it easier for a developer to understand what a variable is designated for. For example: mySalary is a good example to store salary information. Whereas, myS is bad.

Also, keep in mind that using one letter for a variable name is not a common practice unless you create a variable for an iterator, such as i, j, or k,  which are commonly used among programmers as loops iterators.

Avoid using indexes in a set of variables, for example, t1,t2,t3, which may create more difficulties in understanding the program. Indexes are ok if you have more than one value of the same things you are trying to store. For example:

char AddressLine1, AddressLine2;

is not considered to be a bad practice in variable naming.


Be consistent

Consistency in programming is an important indicator of good program design and clean code. Stay consistent as much as possible when naming variables or functions.

For example, using a camelCase or PascalCase to name your variables is a great idea. However, don’t mix the two cases in the same program or program scope.

int employeeSalary;
string employeeName;
char employeeDepartment;
bool isRetired;

Or

int EmployeeSalary;
string EmployeeName;
char EmployeeDepartment;
bool IsRetired;

are good examples of consistency when naming variables.

However, mixing two or more styles when declaring variables will make it difficult to read.

int EmployeeSalary;
string employeeName;
char Employee_Department;
bool ISRETIRED;

Use comments to describe your variable

Use the single-line comment to explain your variable in a few words if it is hard to recognize.
For example:

int medianValue ; // to store median value for two arrays

Group Variables together

In a long list of variables declaration, grouping related variables is an excellent practice to make your program easier to understand.

// Employee basic information
string employeeFirstName;
string employeeLastName;
string employeeDOB;

// Employee address information
string employeeStreetAddress;
string employeeCity;
string employeeState;
string employeeZipCode;

// Employee contact information
string employeePhone;
string employeeEmail;

C++ Reserved Keywords

Reserved keywords, or identifiers, are used by the C++ compiler and thus cannot be used as variable names.

andand_eqasmauto
bitorboolbreakcase
catchcharcinclass
complconstconst_castcontinue
coutdefaultdeletedo
doubledynamic_castelseendl
enumexplicitexternfalse
floatforfriendgoto
ifincludeinlineint
INT_MAXINT_MINiomanipiostream
longmainMAX_RANDmutable
namespacenewnotnot_eq
nposNULLoperatoror
or_eqprivateprotectedpublic
registerreinterpret_castreturnshort
signedsizeofstaticstatic_cast
stdstringstructswitch
templatethisthrowtrue
trytypedeftypeidtypename
unionunsignedusingvirtual
voidvolatilewchar_twhile
xorxor_eq

C++ Data Types

As mentioned earlier in this lesson, Data Types are used to identify the type of information that a variable will hold. For example, an int Data Type is to store numbers.

int numberOfDoors; // to store a number
string LastName; // to store a text value

There are three Data Types categories in C++:

  • Primitive Data Types
  • Derived Data Types
  • User-Defined Data Types

In this lesson, we will discuss the Primitive Data Type. The Derived and User-Defined Data Types will be addressed in detail later in this tutorial.


Primitive Data Types

Primitive Data Types are built-in types that are available for programmers in all C++ versions.

  • bool
  • char
  • int
  • float
  • double
  • void
  • wchar_t

Data type modifiers in C++

A programmer can modify these types using modifiers to alter their capacity or switch between signed and unsigned values.

  • signed
  • unsigned
  • short
  • long
It’s important to use the modifiers when you declare a variable, if possible. For example, declaring a variable for the integer property ‘age’ should be modified with the short modifier. Doing so will reserve the memory for a short number and save memory space for other program functions, as ‘age’ technically cannot be large.

The following list describes the Data Types in C++, their sizes, and the value range.

Data TypeSize (In Bytes)Range
char1-128 to 127
unsigned char10 to 255
short2-32,768 to 32,767
unsigned short20 to 65,535
int2-32,768 to 32,767
unsigned int20 to 65,535
long4-2,147,483,648 to 2,147,483,647
unsigned long40 to 4,294,967,295
float23.4e-038 to 3.4e+038
double81.7e-308 to 1.7e+308
long double101.7e-4932 to 1.7e+4932
bool10 to 1
voidNANA
wchar_t40 to 255

C++ bool

bool or Boolean is used to store logical or Boolean value. For example, if you need a variable to store true/false, yes/no, or 0/1 type of values, use the Boolean Data Type to define it. The keyword bool is used to define a Boolean variable. For Example:

bool isRetired = false;

C++ char

The char or character Data Type is used to store a single character. For example:

char flag ='A';

The char value is enclosed inside single quotes.


C++ int:

int or integer is used for numbers. The keyword to use when declaring a variable is int. for Example:

int floorNumber = 15;
int floorNumber, doorNumber;

C ++ float

float is used to store single-precision- point numbers. for example:

float perimeter = 6.39;

C++ double

double is similar to float. The only difference is that float is a single-precision floating number ( 32 bit), while double is a double-precision floating number ( 64 bit). For example:

double PI= 3.14159265359;

C++ void

void indicates the lack of a Data Type. It’s used in functions and pointers and cannot be used to declare a variable.


C++ wchar_t

wchar_t is the keyword to declare a Wide character variable. wchar_t is similar to char, except its size, which is 2 bytes. The wchar_t is mainly used to represent some characters that require more memory and size, such as representing Unicode values. For example

wchar_t w = L'Á';

Points to remember

  • Variable names in C++ are case sensitive.
  • A variable name must begin with a letter or an underscore.
  • A variable in C++ cannot contain spaces
  • C++ primitive Data Types are: bool, char, int, float, double, void, wchar_t
Back to: Learn C++ Programming > Introduction to C++

Leave a Reply

Your email address will not be published. Required fields are marked *