Cambo Freelance
ទំព័រដើមសេវាកម្មអត្ថបទការបង្រៀនក្រុមវគ្គបណ្តុះបណ្តាលទំនាក់ទំនង
Cambo Freelance

Professional freelance team from Cambodia delivering technology-driven solutions with cultural insight and modern expertise.

ផ្ញើសាររបស់អ្នក

ត្រៀមចាប់ផ្តើមគម្រោងរបស់អ្នក? ទំនាក់ទំនងក្រុមរបស់យើង។

ទំនាក់ទំនង

សេវាកម្ម

  • Web & Mobile Development Services
  • Graphic Design & Branding Services

តំណភ្ជាប់មានប្រយោជន៍

  • ទំព័រដើម
  • សេវាកម្ម
  • ការសិក្សា
  • អំពីយើង
  • ទំនាក់ទំនង
  • តម្លៃ

© 2026 Cambo Freelance. រក្សាសិទ្ធិទាំងអស់។

TelegramFacebookLinkedInEmail
HomeTutorialsC++C++ References
⚡C++ Tutorials

50 lessons

Beginner(21)1C++ Introduction2C++ Getting Started3C++ Syntax4C++ Output5C++ Comments6C++ Variables7C++ Data Types8C++ Constants9C++ User Input10C++ Operators11C++ Strings12C++ Math13C++ Booleans14C++ Conditions15C++ Switch16C++ Loops17C++ Break and Continue18C++ Arrays19C++ Functions20C++ References21C++ Pointers
Intermediate(19)22C++ Classes23C++ Objects24C++ Constructors25C++ Access Specifiers
Advanced(10)41C++ Smart Pointers42C++ Templates43C++ Lambda Functions44
⚡

C++ Tutorials

Lesson 20 of 50

All lessons
Beginner (21)1C++ Introduction2C++ Getting Started
26
C++ Encapsulation
27C++ Inheritance
28C++ Polymorphism
29C++ Abstraction
30C++ Files
31C++ Exception Handling
32C++ Namespaces
33C++ Structures
34C++ Enumerations
35C++ STL Introduction
36C++ Vectors
37C++ Maps
38C++ Sets
39C++ Queues
40C++ Stacks
C++ Move Semantics
45C++ Multithreading
46C++ Design Patterns
47C++ Memory Management
48C++17 Features
49C++20 Features
50C++ Performance Optimization
3
C++ Syntax
4C++ Output
5C++ Comments
6C++ Variables
7C++ Data Types
8C++ Constants
9C++ User Input
10C++ Operators
11C++ Strings
12C++ Math
13C++ Booleans
14C++ Conditions
15C++ Switch
16C++ Loops
17C++ Break and Continue
18C++ Arrays
19C++ Functions
20C++ References
21C++ Pointers
Intermediate (19)22C++ Classes23C++ Objects24C++ Constructors25C++ Access Specifiers26C++ Encapsulation27C++ Inheritance28C++ Polymorphism29C++ Abstraction30C++ Files31C++ Exception Handling32C++ Namespaces33C++ Structures34C++ Enumerations35C++ STL Introduction36C++ Vectors37C++ Maps38C++ Sets39C++ Queues40C++ Stacks
Advanced (10)41C++ Smart Pointers42C++ Templates43C++ Lambda Functions44C++ Move Semantics45C++ Multithreading46C++ Design Patterns47C++ Memory Management48C++17 Features49C++20 Features50C++ Performance Optimization
⚡C++BeginnerLesson 20 of 50CamboFreelanceJune 19, 2026

C++ References

Understand C++ references — aliases for variables that enable pass-by-reference, in-place modification, and efficient parameter passing.


Tutorials › C++ › References
Beginner7 min readLesson 20 of 50

In This Lesson

  • What is a Reference?
  • Pass by Reference
  • const References
  • Quiz

What is a Reference?

A reference is an alias — another name for an existing variable. Created with &. Both names refer to the same memory location.

#include <iostream>
using namespace std;

int main() {
    int x = 10;
    int &ref = x;   // ref is an alias for x

    cout << x   << endl;   // 10
    cout << ref << endl;   // 10

    ref = 99;
    cout << x   << endl;   // 99 (x changed through ref)
    return 0;
}

Output:

10
10
99

Pass by Reference

By default, C++ passes arguments by value (a copy). Using & in a parameter passes the original variable — changes persist after the function returns.

void addTen(int &n) {   // reference parameter
    n += 10;
}

int main() {
    int score = 50;
    addTen(score);
    cout << score;   // 60 — original was modified
}
// Swap function using references
void swap(int &a, int &b) {
    int temp = a;
    a = b;
    b = temp;
}

int x = 5, y = 10;
swap(x, y);
cout << x << " " << y;   // 10 5

const References

Use const & to pass large objects efficiently without allowing modification:

void print(const string &s) {
    cout << s << endl;
    // s = "change"; // ERROR — const prevents modification
}

print("Hello World");   // no copy made, no modification allowed
Best Practice: Pass strings and large objects by const& to avoid expensive copies. Pass small types like int and double by value.

Exercise

Write a function square(int &n) that squares the value in place (modifies the original). Test it.

Show Solution
#include <iostream>
using namespace std;

void square(int &n) {
    n = n * n;
}

int main() {
    int x = 7;
    square(x);
    cout << "Squared: " << x << endl;   // 49
    return 0;
}

Quiz

  1. A reference variable is:

    • A) A copy of another variable
    • B) An alias that points to the same memory
    • C) A pointer that needs dereferencing
    • D) A const variable
    Answer

    B) A reference is an alias — it shares the same memory address as the original variable.

  2. How do you declare a reference parameter in a function?

    • A) int *n
    • B) ref int n
    • C> int &n
    • D) &int n
    Answer

    C) int &n

Summary

  • A reference is an alias for another variable, using &.
  • Pass by reference allows functions to modify the caller's variables.
  • const & passes efficiently without allowing modification.
← Previous: Functions Next: C++ Pointers →
c++referencespass-by-referencebeginner
PreviousLesson 19: C++ FunctionsNextLesson 21: C++ Pointers
Back to All Tutorials