Codecademy will be down from 00:00 to 02:00 ET on November 15, 2019 for scheduled database maintenance. This will affect the website, learning environment, forums, and mobile app. We will provide updates as necessary.
Cheat Sheets are in BETA. Give us your feedback.


In C++, a reference variable is an alias for another object. It is created using the & sign. Two things to note:

  1. Anything done to the reference also happens to the original.
  2. Aliases cannot be changed to alias something else.
int &sonny = songqiao;


In C++, pass-by-reference refers to passing parameters to a function by using references.

It allows the ability to:

  • Modify the value of the function arguments.
  • Avoid making copies of a variable/object for performance reasons.
void swap_num(int &i, int &j) { int temp = i; i = j; j = temp; } int main() { int a = 100; int b = 200; swap_num(a, b); std::cout << "A is " << a << "\n"; std::cout << "B is " << b << "\n"; }

const Reference

In C++, pass-by-reference with const can be used for a function where the parameter(s) won’t change inside the function.

This saves the computational cost of making a copy of the argument.

int triple(int const &i) { return i * 3; }

Memory Address

In C++, the memory address is the location in the memory of an object. It can be accessed with the “address of” operator, &.

Given a variable porcupine_count, the memory address can be retrieved by printing out &porcupine_count. It will return something like: 0x7ffd7caa5b54.

std::cout << &porcupine_count << "\n";


In C++, a pointer variable stores the memory address of something else. It is created using the * sign.

int* ptr = &gum;