Bird
Raised Fist0
Cprogramming~10 mins

Pointer declaration - 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.

C
int [1] ptr;
Drag options to blanks, or click blank then click option'
A*
B&
C#
D%
Attempts:
3 left
💡 Hint
Common Mistakes
Using & instead of * to declare a pointer.
Forgetting the * symbol entirely.
2fill in blank
medium

Complete the code to declare a pointer to a character.

C
char [1] ch_ptr;
Drag options to blanks, or click blank then click option'
A&
B$
C^
D*
Attempts:
3 left
💡 Hint
Common Mistakes
Using & instead of * for pointer declaration.
Using symbols like ^ or $ which are invalid here.
3fill in blank
hard

Fix the error in the pointer declaration.

C
float [1] ptr;
Drag options to blanks, or click blank then click option'
A*
B#
C&
D@
Attempts:
3 left
💡 Hint
Common Mistakes
Placing & instead of *.
Using invalid symbols like # or @.
4fill in blank
hard

Fill both blanks to declare a pointer to a double and initialize it to NULL.

C
double [1] ptr = [2];
Drag options to blanks, or click blank then click option'
A*
BNULL
C0
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 instead of NULL for pointer initialization.
Using & instead of * for pointer declaration.
5fill in blank
hard

Fill all three blanks to declare a pointer to a constant integer and initialize it to NULL.

C
const int [1] ptr = [2]; // pointer to constant int

[3] value = 10;
Drag options to blanks, or click blank then click option'
A*
BNULL
Cint
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using & instead of * for pointer declaration.
Using wrong variable type for value.
Initializing pointer with 0 instead of NULL.

Practice

(1/5)
1. What does the following declaration mean in C?
int *ptr;
easy
A. ptr is a pointer to a character variable
B. ptr is a pointer to an integer variable
C. ptr is an integer variable
D. ptr is a function returning an integer

Solution

  1. Step 1: Understand the * symbol in declaration

    The * before ptr means ptr is a pointer variable, not a normal integer.
  2. Step 2: Check the type before *

    The type before * is int, so ptr points to an integer variable.
  3. Final Answer:

    ptr is a pointer to an integer variable -> Option B
  4. Quick Check:

    int *ptr means pointer to int [OK]
Hint: Look for * before variable name to identify pointer [OK]
Common Mistakes:
  • Thinking * means multiplication here
  • Confusing pointer with normal variable
  • Ignoring the type before *
2. Which of the following is the correct way to declare a pointer to a float variable in C?
easy
A. ptr float*;
B. float ptr*;
C. *float ptr;
D. float *ptr;

Solution

  1. Step 1: Recall pointer declaration syntax

    Pointer declaration syntax is: type *name; so the * goes between type and variable name.
  2. Step 2: Check each option

    float *ptr; matches correct syntax: float *ptr; others have wrong order or missing parts.
  3. Final Answer:

    float *ptr; -> Option D
  4. Quick Check:

    Pointer syntax = type *name; [OK]
Hint: Always put * between type and variable name [OK]
Common Mistakes:
  • Placing * after variable name
  • Putting * before type
  • Missing * entirely
3. What is the output of this C code?
int x = 10;
int *p = &x;
printf("%d", *p);
medium
A. 10
B. Compilation error
C. Garbage value
D. Address of x

Solution

  1. Step 1: Understand pointer initialization

    p is assigned the address of x using &x, so p points to x.
  2. Step 2: Dereference pointer to get value

    *p means value at address p, which is x's value 10.
  3. Final Answer:

    10 -> Option A
  4. Quick Check:

    *p gives value at pointer address [OK]
Hint: Use * to get value from pointer address [OK]
Common Mistakes:
  • Printing pointer p instead of *p
  • Confusing address and value
  • Forgetting & to get address
4. Identify the error in this pointer declaration:
int *p;
p = 5;
medium
A. Error: assigning integer directly to pointer
B. Correct: p points to integer 5
C. Error: missing * in assignment
D. Error: pointer must be initialized with & operator

Solution

  1. Step 1: Check pointer assignment rules

    A pointer must hold a memory address, not a direct integer value.
  2. Step 2: Analyze given assignment

    Assigning 5 directly to pointer p is invalid; it should be an address like &variable.
  3. Final Answer:

    Error: assigning integer directly to pointer -> Option A
  4. Quick Check:

    Pointer = address, not direct value [OK]
Hint: Pointers store addresses, never assign raw values directly [OK]
Common Mistakes:
  • Assigning integer instead of address
  • Forgetting & operator for address
  • Confusing pointer and normal variable
5. Given the code below, which pointer declaration correctly allows modifying the value of num through the pointer?
int num = 20;
// Which declaration is correct?
hard
A. int *ptr = num;
B. int ptr = #
C. int *ptr = #
D. int &ptr = num;

Solution

  1. Step 1: Understand pointer declaration for modifying variable

    To modify num via pointer, pointer must hold address of num, declared as int *ptr.
  2. Step 2: Check each option

    int *ptr = # correctly declares pointer to int and assigns address of num. Others are invalid syntax or wrong types.
  3. Final Answer:

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

    Pointer to int = &variable for modification [OK]
Hint: Use int *ptr = &var to modify var via pointer [OK]
Common Mistakes:
  • Assigning value instead of address
  • Using wrong type for pointer
  • Confusing references with 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