Bird
Raised Fist0
C++programming~10 mins

Pointer and variable relationship in C++ - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a pointer to an integer variable.

C++
int x = 10;
int [1] ptr = &x;
Drag options to blanks, or click blank then click option'
A*
B&
C#
D%
Attempts:
3 left
💡 Hint
Common Mistakes
Using & instead of * when declaring a pointer.
Confusing pointer declaration with address-of operator.
2fill in blank
medium

Complete the code to assign the address of variable x to pointer ptr.

C++
int x = 5;
int* ptr;
ptr = [1]x;
Drag options to blanks, or click blank then click option'
A*
B&&
C%
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using * instead of & when assigning address.
Using && which is for rvalue references, not addresses.
3fill in blank
hard

Fix the error in the code to correctly print the value pointed to by ptr.

C++
int x = 20;
int* ptr = &x;
std::cout << [1]ptr << std::endl;
Drag options to blanks, or click blank then click option'
A&ptr
Bptr
C*ptr
D&&ptr
Attempts:
3 left
💡 Hint
Common Mistakes
Printing the pointer itself instead of the value it points to.
Using &ptr which gives the address of the pointer variable, not the value.
4fill in blank
hard

Fill both blanks to declare a pointer and assign it the address of variable y.

C++
int y = 15;
[1] ptr = [2]y;
Drag options to blanks, or click blank then click option'
Aint*
Bint
C&
D*
Attempts:
3 left
💡 Hint
Common Mistakes
Using int instead of int* for pointer declaration.
Using *y instead of &y when assigning address.
5fill in blank
hard

Fill all three blanks to declare a pointer, assign it the address of z, and print the value pointed to by ptr.

C++
int z = 30;
[1] ptr = [2]z;
std::cout << [3]ptr << std::endl;
Drag options to blanks, or click blank then click option'
Aint*
B&
C*
Dint
Attempts:
3 left
💡 Hint
Common Mistakes
Using int instead of int* for pointer declaration.
Assigning *z instead of &z.
Printing ptr instead of *ptr.

Practice

(1/5)
1. What does a pointer variable in C++ store?
easy
A. The value of another variable
B. The memory address of another variable
C. The size of a variable
D. The type of a variable

Solution

  1. Step 1: Understand what a pointer is

    A pointer is a variable that stores the address of another variable, not the value itself.
  2. Step 2: Differentiate pointer from normal variables

    Normal variables store values directly, but pointers store where those values are located in memory.
  3. Final Answer:

    The memory address of another variable -> Option B
  4. Quick Check:

    Pointer = address storage [OK]
Hint: Pointers always hold addresses, not values [OK]
Common Mistakes:
  • Confusing pointer value with variable value
  • Thinking pointer stores variable type
  • Assuming pointer stores variable size
2. Which of the following is the correct way to declare a pointer to an integer in C++?
easy
A. int ptr*;
B. *int ptr;
C. int *ptr;
D. ptr int*;

Solution

  1. Step 1: Recall pointer declaration syntax

    In C++, to declare a pointer to an int, you write the type followed by an asterisk and the pointer name.
  2. Step 2: Check each option

    Only 'int *ptr;' matches the correct syntax. Others have misplaced asterisks or wrong order.
  3. Final Answer:

    int *ptr; -> Option C
  4. Quick Check:

    Pointer declaration = type *name [OK]
Hint: Pointer declaration: type *name; [OK]
Common Mistakes:
  • Placing * after variable name
  • Using * before type keyword
  • Mixing order of type and pointer symbol
3. What is the output of the following code?
int x = 10;
int *p = &x;
*p = 20;
std::cout << x << std::endl;
medium
A. 20
B. 10
C. Address of x
D. Compilation error

Solution

  1. Step 1: Understand pointer assignment

    Pointer p stores the address of x. Using *p = 20 changes the value at that address, so x becomes 20.
  2. Step 2: Output the value of x

    After changing *p, printing x outputs 20.
  3. Final Answer:

    20 -> Option A
  4. Quick Check:

    Pointer dereference changes variable value [OK]
Hint: Changing *p changes x's value [OK]
Common Mistakes:
  • Thinking *p = 20 changes pointer, not value
  • Expecting output to be address
  • Confusing pointer and variable values
4. Identify the error in the following code:
int x = 5;
int *p;
*p = x;
std::cout << *p << std::endl;
medium
A. Pointer p is not initialized before dereferencing
B. Variable x is not declared
C. Incorrect pointer declaration syntax
D. Missing semicolon after declaration

Solution

  1. Step 1: Check pointer initialization

    Pointer p is declared but not assigned an address before using *p = x; which causes undefined behavior.
  2. Step 2: Understand dereferencing uninitialized pointer

    Dereferencing p without initialization leads to runtime error or crash.
  3. Final Answer:

    Pointer p is not initialized before dereferencing -> Option A
  4. Quick Check:

    Always initialize pointers before dereference [OK]
Hint: Initialize pointers before use to avoid errors [OK]
Common Mistakes:
  • Dereferencing uninitialized pointers
  • Assuming pointer auto-initializes
  • Ignoring runtime errors from bad pointers
5. Given the code below, what will be the output?
int a = 3, b = 4;
int *p = &a;
int *q = &b;
int *temp = p;
p = q;
q = temp;
std::cout << *p << " " << *q << std::endl;
hard
A. 3 4
B. 3 3
C. 4 4
D. 4 3

Solution

  1. Step 1: Understand pointer swapping

    Initially, p points to a (3), q points to b (4). temp stores p (address of a).
  2. Step 2: Swap pointers

    p = q makes p point to b (4), q = temp makes q point to a (3).
  3. Step 3: Print values pointed by p and q

    *p is 4, *q is 3, so output is "4 3".
  4. Final Answer:

    4 3 -> Option D
  5. Quick Check:

    Pointer swap changes what they point to [OK]
Hint: Swapping pointers swaps pointed values [OK]
Common Mistakes:
  • Confusing pointer values with pointed values
  • Mixing up which pointer points where after swap
  • Assuming values themselves swap
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard