QCM : Maîtrise des pointeurs en C++ — 9 questions

Questions et réponses du QCM

1. Que permet l'utilisation d’un pointeur sur fonction en C++ ?

Passer une fonction en argument pour une utilisation flexible
Créer une nouvelle variable de type fonction
Stocker une valeur numérique
Permettre la manipulation de tableaux

Passer une fonction en argument pour une utilisation flexible

Explication

Un pointeur sur fonction en C++ permet de stocker l'adresse d'une fonction, ce qui permet de passer cette fonction en argument à d'autres fonctions, offrant ainsi une flexibilité dans le choix de la fonction à exécuter.

2. Quelle déclaration crée un pointeur vers un entier en C++?

int p;
int* p;
pint*;
*int p;

int* p;

Explication

La déclaration correcte pour un pointeur vers un int est 'int* p;'. Les autres options ne respectent pas cette syntaxe, 'int p;' déclare simplement une variable de type int.

3. Comment accède-t-on à la valeur pointée par un pointeur p en C++ ?

En écrivant *p
En écrivant p[]
En écrivant p()
En écrivant p*

En écrivant *p

Explication

Pour accéder à la valeur stockée à l'adresse contenue dans un pointeur p, on utilise l'opérateur * (déréférencement), donc *p.

4. Que signifie l’expression `&a` en C++?

L’adresse de la variable a.
La valeur stockée dans a.
L’adresse mémoire d’un pointeur appelé a.
Une opération de mémoire non définie.

L’adresse de la variable a.

Explication

L’opérateur '&' donne l’adresse mémoire d’une variable, ici celle de 'a'. Cela est essentiel pour accéder ou manipuler la mémoire directement.

5. Quelle est la fonction principale des pointeurs en C++ ?

Manipuler efficacement la mémoire et les adresses
Créer des variables de type complexe
Afficher des variables à l'écran
Stocker des valeurs numériques directement

Manipuler efficacement la mémoire et les adresses

Explication

Les pointeurs en C++ sont principalement utilisés pour manipuler efficacement la mémoire, en stockant des adresses de variables, ce qui permet notamment la gestion dynamique de la mémoire et la transmission efficace des variables aux fonctions.

6. Quelle est la conséquence d’utiliser `*p` si p est un pointeur non initialisé?

Accéder à une valeur indéfinie en mémoire, ce qui peut causer une erreur.
Obtenir la valeur de la variable pointée.
Créer un nouveau pointeur.
Initialiser automatiquement le pointeur.

Accéder à une valeur indéfinie en mémoire, ce qui peut causer une erreur.

Explication

Utiliser `*p` sur un pointeur non initialisé mène à un comportement indéfini, car il pointe vers une adresse mémoire non définie, risquant ainsi une erreur.

7. Comment accéder à la valeur d’un tableau `x` à l’indice `k` en utilisant la notation pointeur?

`x(k)`
`*(x + k)`
`x[k]`
`&x[k]`

`*(x + k)`

Explication

`x[k]` est équivalent à `*(x + k)`, permettant d’accéder ou de modifier la valeur à l’indice `k` en utilisant la notation pointeur. Note : La réponse accepte à la fois `x[k]` et `*(x + k)` car elles sont équivalentes.

8. Quelle fonction en C++ permet principalement de gérer la mémoire dynamiquement?

`allocate()`
`malloc()` et `free()`
`new` et `delete`
`alloc()` et `dispose()`

`malloc()` et `free()`

Explication

`malloc()` et `free()` sont les fonctions classiques de gestion mémoire en C, tandis que `new` et `delete` sont des opérateurs en C++. Tous deux gèrent la mémoire dynamique.

9. Quel est le rôle principal d’un pointeur de pointeurs (`double**`) en C++?

Manipuler un tableau de pointeurs ou des structures complexes.
Pointer vers une seule variable double.
Stocker une valeur double dans une adresse mémoire.
Créer une fonction qui retourne deux pointeurs.

Manipuler un tableau de pointeurs ou des structures complexes.

Explication

Un `double**` permet de manipuler des adresses de pointeurs, donc d’accéder à des tableaux de pointeurs ou des structures complexes, facilitant la gestion de données dynamiques ou structurées.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Maîtrise des pointeurs en C++.

Adresse variable — notation ?

&variable

Pointeur — définition?

Variable contenant une adresse mémoire.

Pointeur — déclaration ?

type* nom;

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Maîtrise des pointeurs en C++.

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