WalzoneInterview Prep
πŸ“ž Interviewing soon? Practice with a realistic AI mock phone interview β€” it calls you, then scores you. First 15 min FREE β†’

C++ Β· Intermediate Β· question 29 of 100

What is the difference between a reference and a pointer in C++?

πŸ“• Buy this interview preparation book: 100 C++ questions & answers β€” PDF + EPUB for $5

In C++, both references and pointers provide a way to refer to objects or variables indirectly, rather than directly. However, there are several key differences between the two.

Syntax: A pointer is declared using the * operator, while a reference is declared using the & operator. For example:

    int* ptr; // declare a pointer
    int& ref; // declare a reference

Nullability: A pointer can be assigned a null value, which indicates that it does not point to any valid memory location. A reference cannot be null; it must always refer to a valid object. Attempting to use a null pointer can result in a runtime error or undefined behavior. For example:

    int* ptr = nullptr; // assign a null value to a pointer
    int& ref = *ptr; // error: dereferencing a null pointer

Memory manipulation: A pointer can be manipulated directly to point to different objects or locations in memory. A reference cannot be manipulated directly; it always refers to the same object that it was initialized with. For example:

    int x = 5;
    int y = 10;
    int* ptr = &x; // assign pointer to x
    ptr = &y; // reassign pointer to y
    int& ref = x; // initialize reference to x
    ref = y; // assign y to x through the reference (x now equals 10)

Indirection: Accessing the value of a pointer requires using the * operator to dereference it, while accessing the value of a reference is done directly. For example:

    int x = 5;
    int* ptr = &x; // assign pointer to x
    int& ref = x; // initialize reference to x
    cout << *ptr << endl; // dereference pointer to get x value
    cout << ref << endl; // get x value through reference directly

In summary, a pointer is a variable that stores a memory address, which can be null and can be manipulated directly to point to different objects. A reference is an alias for an object, which cannot be null and always refers to the same object that it was initialized with. Both references and pointers have their own unique use cases in C++ programming.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic C++ interview β€” then scores it.
πŸ“ž Practice C++ β€” free 15 min
πŸ“• Buy this interview preparation book: 100 C++ questions & answers β€” PDF + EPUB for $5

All 100 C++ questions Β· All topics