EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

C++ Reference

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » C++ Reference

C++

Introduction to C++ Reference

In programming, we might come across so many variables with the same names but can refer to each other if we assign a reference to them. References in C ++ also behaves in a similar way. In reference, there is an alternate name for the declared variable or previously existing variable in your source code. Therefore, any variables can be declared using one operator known as ampersand and it is denoted by “ & ”. References are used in programming because it saves huge lines of code and unnecessary declaration of variables in the code. Hence, saves memory also while making an efficient code.

Let’s have a look at the syntax for declaring a reference to a variable:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Syntax:

int i = 10 ;
int& r = i ;

As you can see we have declared an integer variable “i” and we have also assigned the value 10 to it. After that, we have declared a reference variable “r” as an alternate reference to the variable “i”.

Now let’s discuss the working of references in C ++ programming through some examples.

Working of References in C ++ Programming with Examples

A Reference is always declared as an alternate for a variable hence it works as a parameter.

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,828 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Example #1

Here is the C ++ code to determine the working of references in programming:

Code:

#include <iostream>
int main ()
{
int value { 50 } ; // Declaring an integer with assigned value 50
int &reference { value } ; // creating a reference to the variable value we declared above
value = 60 ; // the changed value is now 60
reference = 70 ; // the reference value is now 70
std :: cout << value << '\n'; // prints 7
++reference ;
std :: cout << value << '\n'; // prints 8
return 0 ;
}

Output:

C++ Reference-1.1

Code Explanation: As in the above code, you can see we have declared an integer variable with the assigned value and then we have created a reference variable and gave it a reference to a declared integer variable. Initially, we have declared the value to 60 and then we assigned value 70 to the references variable. Therefore, on the successful execution of the code, you will see that the reference variable value is selected and then incremented.

Example #2

Here is another C ++ code to determine the working of references in programming:

Code:

#include <iostream>
using namespace std ;
int main () {
// declaring two simple variables of integer and double data type
int    x ;
double y ;
// declaring two reference variables of integer and double data type
int&    p = x ;
double& q = y ;
x = 14 ;  // Assigning value 14 to the variable x
cout << " The Value of x is : " << x << endl;
cout << " The Value of x reference is : " << p  << endl;
y = 54.7 ; // Assigning value 54.7 to the variable y
cout << " The Value of y is : " << y << endl ;
cout << " The Value of y reference is : " << q  << endl ;
return 0 ;
}

Output:

C++ Reference-1.2

Code Explanation: As in the above code, you can see we have declared two integer variables x and y then we have created two reference variables and gave it a reference to the two declared integer variables. Initially, we have declared the value of x to 14 and then we assigned value 54.7 to the variable y. Therefore, on the successful execution of the code, you will see that the value and reference variable value of x and y.

If a function is receiving any kind of reference to a variable then it can also modify the value of the variable it is known as modifying the passing parameters in a function. Let’s see how this is possible through a code.

Example #3

Here is another C ++ code to demonstrate the modifying of passed parameter value in a function:

Code:

#include<iostream>
using namespace std ;
void swapping (int& initial, int& last)
{
int temporary = initial ;
initial = last ;
last = temporary ;
}
int main()
{
int x = 98 , y = 89 ;
swapping ( x , y ) ;
cout  <<  x  <<  " " <<  y ;
return 0 ;
}

Output:

C++ Reference-1.3

Code Explanation: In the above code, you can see we have modified the value of passed parameter in the function swapping. For swapping we have declared one initial, one temporary, and one last variable. We declared the working of swapping function first then in int main() class we declared x and y variables and then passed these values to the swapping function so that it can be swapped.

We can also use pass-by-reference with reference arguments in your source code. Let’s see how can we do that in C ++ programming.

Example #4

Here is another C ++ code to demonstrate pass-by-reference with reference arguments:

Code:

#include <iostream>
using namespace std ;
void square (int &) ;
int main() {
int num = 12 ;
cout <<  " In main () : " << &num << endl ;
cout << num << endl ;  // 12
square(num);      // Implicitly referencing
cout << num << endl ;  // 144
}
void square (int & rNum) {  // Function takes an integer reference
cout <<  " In square () : " << &rNum << endl ;
rNum *= rNum ;      // Implicit de-referencing
}

Output:

C++ Reference-1.4

Code Explanation: In the above code, you can see we have passed the value of a parameter in the function through creating a reference with the help of reference parameters. We have declared num for normal variable and rNum for reference variable to do explicit and implicit referencing.

Conclusion

References in C + + programming can be created easily. Therefore, to access the value of the actual variable in your source code we don’t have to dereference the variable explicitly. It will be done automatically. References variables can be used for passing in the function as an argument.

Recommended Articles

This is a guide to C++ Reference. Here we discuss the introduction and working of references in C ++ programming along with different examples. You may also look at the following articles to learn more –

  1. Nested Loop in C++
  2. Stack in C++
  3. C++ Identifiers
  4. C++ begin()

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More