Académique Documents
Professionnel Documents
Culture Documents
GL 2/3
Exercice 1 :
A B C P1 P2
int A =1, B=2, C=3 1 2 3
int *P1, *P2 ; 1 2 3
P1=&A; 1 2 3 &a
P2=&C; 1 2 3 &a &c
*P1=(*P2)++; 3 2 4 &a &c
P1=P2; P2=&B; 3 2 4 &c &b
*P1-=*P2; 3 2 2 &c &b
++*P2; 3 3 2 &c &b
*P1*=*P2; 3 3 6 &c &b
A=++*P2**P1; 24 4 6 &c &b
P1=&A; 24 4 6 &a &b
*P2=*P1/=*P2; 6 6 6 &a ab
Résultat :
Q2 :
Voila le code que j’ai utilisé : #include<stdio.h>
void remplitA(int* A,int n) { for(int i=0;i<n;i++) {printf( "donner t[%d] :",i); scanf ("%d",A+i);} }
int main() { int t[10];remplitA(t,10); int &ref=t[4];ref++; int *p=t+6; p++; // incrémentation pointeur
Q3 :
Donc la valeur du nombre passé en paramètre ne change que si on utilise le
passage par adresse ou par référence.
Exercice 2 :
a) int * p; int x=34; p=&x;
Exercice 3:
int* adi ; double * add ;
D’où la solution :
return tab; }
cin >>tab[i] ;
return tab; }
Exercice 5:
Partie 1 : les chaines de caractères sont de type char* et le tableau est déclaré
avec new. Code : ( #include<stdio.h> #include<stdlib.h> #include<iostream> #include<string> using namespace std;
int main(void) {int n; cout << "donner la taille du tableau:"; cin >> n; char* * tab=new char*[n];
for (int i=0;i<n;i++) { tab[i]=new char[25]; cout<< "donner t["<<i<<"]: "; cin >>tab[i]; }
int main()
{int n; cout << "donner la taille du tableau:"; cin >> n; vector <string> tab;
for (int i=0;i<n;i++) { string a; cout <<"donner t["<<i<<"]:"; cin >> a; tab.push_back(a);}
)
Fin