Pointeurs
- Q1: Comment savoir qu'un littérale numérique est une adresse mémoire?
- Q2: Quelles sont les deux utilisations du symboles * en C++??
- Q3: Quel est le rôle de l'opérateur de déréférence?
- Q4: Sachant que:
int cercle_id;
int *cercle_id_adresse;
double rayon;
double *rayon_adresse;
Les expressions suivantes sont-elles correctes? Dites pourquoi.
- Q5: Soient les déclarations C++ suivantes:
int a[5] = {1,2,3,4,5};
int* b;
double c[3] = {6,7,8};
double* d;
Les expressions suivantes sont-elles correctes? Dites pourquoi.
- a.
b = a[0];
- b.
cout << b+1 << endl;
- c.
b = &c[2];
- d.
d=FFEE;
- e.
d=&c[3];
- Q6: Les déclarations suivantes sont-elles correctes? Dites pourquoi.
- a.
delete array;
- b.
new [8];
- c.
new double[8];
- d.
delete [10] array;
- e.
new[1] = 3;
- Q7: Les déclarations suivantes sont-elles correctes? Dites pourquoi.
- a.
char *paa = "aa" "bb" "cc";
- b.
char* pbb = "abc[3]";
- c.
char* pcc[3] = {"a","b","c[3]"};
- d.
char* pdd[2] = {"aa" "bb" "cc"};
- Q8: Expliquer la sortie obtenue suite à l'exécution du programme suivant: demo5exo8.cpp.
- Q9: Écrire un programme qui permet de remplir un tableau à deux dimensions avec des valeurs entières (int) comprises entre 1 et 50.
Utiliser un pointeur pour afficher en sortie les valeurs stockées dans le tableau. L'affichage en sortie doit correspondre à ce qui suit:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
- Q10: Soit les instructions suivantes:
char *p; // ligne -1-
const char *q; // ligne -2-
char &r; // ligne -3-
char t[10]; // ligne -4-
q = p; // ligne -5-
r = p; // ligne -6-
char &s = *p; // ligne -7-
p = &s; // ligne -8-
s = p; // ligne -9-
p = s; // ligne -10-
s = *p; // ligne -11-
*p = s; // ligne -12-
t = p; // ligne -13-
p = t; // ligne -14-
*t = *p; // ligne -15-
Indiquez, pour chacune des lignes précédentes: Lignes syntaxiquement correctes et lignes syntaxiquement incorrectes. Dans le cas des lignes incorrectes,
dites pourquoi ces lignes sont syntaxiquement incorrectes et corrigez-les.
- Q11: En supposant que:
Calculer l'adresse hexadécimale (en mémoire) et la valeur associée pour chacune des variables et cela après l'exécution du programme suivant: demo5exo11.cpp.
|
|