QCM : Memory Mastery in C Programming — 9 questions

Questions et réponses du QCM

1. What is a pointer in programming?

A variable that points to a function.
A variable that stores a value directly.
A variable that stores the memory address of another variable.
A variable that holds a constant value.

A variable that stores the memory address of another variable.

Explication

A pointer is a variable that stores the memory address of another variable, enabling indirect access and manipulation of data in memory.

2. What is the primary purpose of a pointer in C programming?

To store the value of a variable directly
To hold the memory address of another variable
To execute functions faster
To replace variables entirely

To hold the memory address of another variable

Explication

Pointers store memory addresses, enabling indirect access and manipulation of data, which is essential for dynamic memory management and implementing complex data structures.

3. Which of the following correctly demonstrates the syntax for declaring an integer pointer in C?

pointer int ptr;
*int ptr;
int *ptr;
int ptr*;

int *ptr;

Explication

The correct syntax for declaring an integer pointer in C is 'int *ptr;'. This declares 'ptr' as a pointer to an integer. The other options are incorrect syntax: 'pointer int ptr;' is not valid in C, 'int ptr*;' is a misplaced asterisk, and '*int ptr;' is invalid syntax.

4. What does the address-of operator (&) do in C?

Returns the value stored at a variable's address
Returns the memory address of a variable
Creates a new pointer
Deletes the pointer and frees memory

Returns the memory address of a variable

Explication

The '&' operator returns the memory address of a variable, which is useful for assigning a pointer to that variable’s location.

5. What is the primary role of pointers when used with arrays in C programming?

They enable indirect access and manipulation of array elements.
They are used solely for static array declaration.
They automatically allocate memory for arrays.
They prevent memory leaks in array management.

They enable indirect access and manipulation of array elements.

Explication

Pointers allow indirect access to array elements through memory addresses, enabling efficient element manipulation and flexible data handling in C.

6. Which operator is used to access the value stored at the memory address a pointer points to?

& (address-of operator)
* (dereference operator)
# (hash operator)
-> (arrow operator)

* (dereference operator)

Explication

The '*' operator, known as the dereference operator, accesses or modifies the data at the memory location stored in the pointer.

7. Why is it recommended to initialize pointers to NULL in C?

To set the pointer to a valid memory location
To prevent the pointer from pointing to an uninitialized or invalid memory address
To allocate new memory automatically
To make the pointer point to the first element of an array

To prevent the pointer from pointing to an uninitialized or invalid memory address

Explication

Initializing pointers to NULL helps prevent accidental dereferencing of uninitialized or invalid addresses, reducing bugs and potential crashes.

8. What is a double pointer in C?

A pointer that stores the address of a variable
A pointer that stores the address of another pointer
A pointer that is allocated twice as much memory
A pointer used only for arrays of characters

A pointer that stores the address of another pointer

Explication

A double pointer (type**) stores the address of another pointer, enabling multiple levels of indirection, often used for arrays of pointers or dynamic 2D arrays.

9. How does working with pointers benefit dynamic memory management in C?

It allows manual control over memory allocation and deallocation
It automatically manages memory without programmer intervention
It prevents memory leaks entirely
It simplifies the syntax of the program significantly

It allows manual control over memory allocation and deallocation

Explication

Pointers enable programmers to allocate and free memory dynamically at runtime, leading to flexible and efficient memory management, but they require careful handling to avoid leaks.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Memory Mastery in C Programming.

Pointer — definition?

Variable storing a memory address.

Pointer — definition?

Variable storing another variable's memory address.

Pointer declaration — syntax?

Data type followed by * (e.g., int *p;).

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Memory Mastery in C Programming.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM