TD 3 - Pointeurs

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 3

TD3

-| Pointeur |-

Les opérations élémentaires sur les pointeurs

Exercice1 :
main()
{
int A = 1;
int B = 2;
int C = 3;
int *P1, *P2;
P1=&A;
P2=&C;
*P1=(*P2)++;
P1=P2;
P2=&B;
*P1-=*P2;
++*P2;
*P1*=*P2;
A=++*P2**P1;
P1=&A;
*P2=*P1/=*P2;
return 0;
}

Copiez le tableau suivant et complétez-le pour chaque instruction du programme ci-


dessus.

A B C P1 P2
Init. 1 2 3 / /
P1=&A 1 2 3 &A /
P2=&C
*P1=(*P2)++
P1=P2
P2=&B
*P1-=*P2
++*P2
*P1*=*P2
A=++*P2**P1
P1=&A
*P2=*P1/=*P2

1
Exercice 2 :

Interpréter les instructions suivantes:

char *pc;

int *pi,*pj,*pk;

float *pr;

pc = malloc(10);

pi = malloc(16);

pr = malloc(24);

pj = malloc(sizeof(int));

pk = malloc(3*sizeof(int));

free(pi);

free(pr);

Pointeurs et tableaux

Exercice 3 :

Soit P un pointeur qui pointe sur un tableau A:

int A[] = {12, 23, 34, 45, 56, 67, 78, 89, 90};
int *P;
P = A;

Quelles valeurs ou adresses fournissent ces expressions:

a) *P+2
b) *(P+2)
c) &P+1
d) &A[4]-3
e) A+3
f) &A[7]-P
g) P+(*P-10)
h) *(P+*(P+8)-A[7])

Exercice 4 :
Ecrire un programme qui lit deux tableaux d'entiers A et B et leurs dimensions N et M au
clavier et qui ajoute les éléments de B à la fin de A. Utiliser deux pointeurs PA et PB pour
le transférer et afficher le tableau résultant A.
Pointeurs et chaines de caractères

2
Exercice 5 :

Ecrire un programme qui lit une chaîne de caractères CH au clavier et qui compte les
occurrences des lettres de l'alphabet en ne distinguant pas les majuscules et les
minuscules. Utiliser un tableau ABC de dimension 26 pour mémoriser le résultat et un
pointeur PCH pour parcourir la chaîne CH et un pointeur PABC pour parcourir ABC.
Afficher seulement le nombre des lettres qui apparaissent au mois une fois dans le texte.

Exemple:

Entrez une ligne de texte (max. 100 caractères) : Jeanne

La chaîne "Jeanne" contient :

1 fois la lettre 'A'


2 fois la lettre 'E'
1 fois la lettre 'J'
3 fois la lettre 'N'

Exercice 6 :

Ecrire un programme qui lit un caractère C et une chaîne de caractères CH au clavier.


Ensuite toutes les occurrences de C dans CH seront éliminées. Le reste des caractères
dans CH sera tassé à l'aide d'un pointeur et de la fonction strcpy.

Exercice 7 :

On se donne une structure «livre» :


typedef struct livre {
char titre[20];
int cote;
int prix;
} Livre;

On veut créer une bibliothèque de plusieurs livres, sous la forme d’un tableau de livres.
1) É crire une fonction init qui renvoie un tableau de n livres, qui alloue la mémoire
nécessaire et qui initialise les champs à 0 ou à la chaîne de caractères vide.
2) É crire une fonction qui permet la saisie d’un livre.
2) É crire une fonction qui affiche un tableau de n livres.
4) É crire une fonction qui fait l’échange des livres d’indice i et j dans le tableau de livres .

Vous aimerez peut-être aussi