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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| #include <iostream>
int TAB0[] = {1, 2, 3};
int TAB[] = {4, 5, 6};
// Passage par pointeur
void fctn1(int* arg1)
{
(*arg1)++;
// *arg1 = *arg1 + 1;
}
// Passage par référence
void fctn2(int& arg2)
{
++arg2;
}
// passage par référence d'un pointeur
void fctn3(int*& arg3)
{
arg3 = TAB;
}
// Passage d'un pointeur de pointeur (plutôt en C)
void fctn4(int** var)
{
*var = TAB0;
}
// Affiche tableau
void display_tab(const int* const tab, const int size)
{
for(int i = 0 ; i < size ; ++i)
std::cout << tab[i] << "\t";
std::cout << std::endl;
}
int main()
{
int arg1 = 6;
std::cout << "arg1 = " << arg1 << std::endl;
std::cout << "Appel fctn1 : passage par pointeur" << std::endl;
int* ptr_arg1 = &arg1;
fctn1(ptr_arg1);
std::cout << "arg1 = " << arg1 << std::endl;
std::cout << "Appel fctn2 : passage par référence" << std::endl;
fctn2(arg1);
std::cout << "arg1 = " << arg1 << std::endl;
std::cout << "Appel fctn3 : passage par référence d'un pointeur" << std::endl;
int tab[] = {7, 8, 9};
int* k = tab;
display_tab(k, 3);
fctn3(k);
display_tab(k, 3);
std::cout << "Appel fctn4 : passage par pointeur d'un pointeur" << std::endl;
int brd[] = {7, 8, 9};
int* ptr_brd;
int** ptr2_brd;
ptr_brd = brd;
ptr2_brd = &ptr_brd;
for(int i = 0 ; i < 3 ; ++i)
std::cout << (**ptr2_brd)++ << "\t";
std::cout << std::endl;
display_tab(*ptr2_brd, 3);
fctn4(ptr2_brd);
for(int i = 0 ; i < 3 ; ++i)
std::cout << (**ptr2_brd)++ << "\t";
std::cout << std::endl;
display_tab(*ptr2_brd, 3);
return 0;
} |
Partager