Bird
Raised Fist0
C++programming~10 mins

Why pointers are needed in C++ - Test Your Understanding

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.

C++
int x = 10;
int * [1] = &x;
Drag options to blanks, or click blank then click option'
Ap
B*p
C&p
Dp*
Attempts:
3 left
💡 Hint
Common Mistakes
Using '*' in the variable name instead of in the type declaration.
2fill in blank
medium

Complete the code to access the value pointed to by the pointer.

C++
int x = 20;
int *p = &x;
int y = [1]p;
Drag options to blanks, or click blank then click option'
A*
B->
C&
D%
Attempts:
3 left
💡 Hint
Common Mistakes
Using '&' instead of '*' to access the value.
3fill in blank
hard

Fix the error in the code to correctly assign the pointer.

C++
int x = 30;
int *p;
p = [1]x;
Drag options to blanks, or click blank then click option'
Ap
Bx
C*x
D&x
Attempts:
3 left
💡 Hint
Common Mistakes
Assigning the value instead of the address to the pointer.
4fill in blank
hard

Fill both blanks to create a pointer to a pointer and access the original value.

C++
int x = 40;
int *p = &x;
int **pp = [1];
int y = [2]pp;
Drag options to blanks, or click blank then click option'
A&p
B*pp
C**pp
Dp
Attempts:
3 left
💡 Hint
Common Mistakes
Using single dereference when double is needed.
Assigning pointer value instead of its address.
5fill in blank
hard

Fill all three blanks to create a dynamic array, assign values, and access an element.

C++
int *arr = new int[[1]];
arr[0] = [2];
int first = arr[[3]];
Drag options to blanks, or click blank then click option'
A5
B10
C0
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong index to access array element.
Assigning value to wrong index.

Practice

(1/5)
1. Why do we need pointers in C++ programming?
easy
A. To directly access and modify memory locations
B. To write comments in the code
C. To create loops easily
D. To define new data types

Solution

  1. Step 1: Understand what pointers represent

    Pointers store the address of a variable in memory, not the variable's value itself.
  2. Step 2: Recognize the benefit of direct memory access

    This allows programs to directly access and modify data stored in memory, which is not possible with normal variables alone.
  3. Final Answer:

    To directly access and modify memory locations -> Option A
  4. Quick Check:

    Pointers = direct memory access [OK]
Hint: Pointers hold addresses to access data directly [OK]
Common Mistakes:
  • Thinking pointers are used for comments
  • Confusing pointers with loops
  • Believing pointers define new data types
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. pointer int ptr;

Solution

  1. Step 1: Recall pointer declaration syntax

    In C++, a pointer to a type is declared by placing an asterisk (*) before the pointer name after the type.
  2. Step 2: Match the correct syntax

    Among the options, only 'int *ptr;' correctly declares a pointer to an integer.
  3. Final Answer:

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

    Pointer declaration = type *name [OK]
Hint: Pointer syntax: type *pointerName; [OK]
Common Mistakes:
  • Placing * after the pointer name
  • Using invalid keywords like 'pointer'
  • Misplacing the asterisk before the type
3. What will be the output of the following C++ code?
int x = 10;
int *p = &x;
*p = 20;
std::cout << x;
medium
A. Compilation error
B. 10
C. Address of x
D. 20

Solution

  1. Step 1: Understand pointer assignment and dereferencing

    Pointer p stores the address of x. Using *p = 20; changes the value at that address, which is x.
  2. Step 2: Determine the value of x after modification

    Since *p = 20 modifies x, printing x outputs 20.
  3. Final Answer:

    20 -> Option D
  4. Quick Check:

    *p changes x = 20 [OK]
Hint: Dereference pointer to change original variable [OK]
Common Mistakes:
  • Thinking *p prints address instead of value
  • Assuming x remains unchanged
  • Confusing pointer declaration with value assignment
4. Identify the error in this code snippet:
int a = 5;
int *p;
*p = a;
std::cout << *p;
medium
A. Variable a is not declared
B. Pointer p is not initialized before dereferencing
C. Incorrect pointer syntax
D. Missing semicolon after declaration

Solution

  1. Step 1: Check pointer initialization

    Pointer p is declared but not assigned any address before using *p = a;, which causes undefined behavior.
  2. Step 2: Understand consequences of uninitialized pointer

    Dereferencing an uninitialized pointer leads to runtime errors or crashes.
  3. Final Answer:

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

    Initialize pointer before use [OK]
Hint: Always assign pointer before dereferencing [OK]
Common Mistakes:
  • Ignoring pointer initialization
  • Assuming variable a is missing
  • Thinking syntax is incorrect
5. You want a function to modify an integer variable defined in main(). Which is the best way to achieve this using pointers?
hard
A. Pass the variable's value to the function
B. Use a global variable instead
C. Pass the variable's pointer to the function and modify via dereferencing
D. Return a new value from the function and assign it in main()

Solution

  1. Step 1: Understand function parameter passing

    Passing a variable's value copies it, so changes inside the function don't affect the original.
  2. Step 2: Use pointers to modify original variable

    Passing the variable's pointer allows the function to access and change the original variable by dereferencing the pointer.
  3. Final Answer:

    Pass the variable's pointer to the function and modify via dereferencing -> Option C
  4. Quick Check:

    Pointer parameter modifies original variable [OK]
Hint: Pass pointer to function to change original variable [OK]
Common Mistakes:
  • Passing value only modifies copy
  • Using global variables unnecessarily
  • Relying on return value instead of pointers
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