« Langage C++/Pointeur, Tableaux et références » : différence entre les versions
Contenu supprimé Contenu ajouté
→Tableaux "Statiques" : selon discussion |
Dépeuplement de Catégorie:Pages utilisant des balises source obsolètes |
||
Ligne 40 :
{{Définition
| contenu =
'''Syntaxe:''' <
Où <Type> est le type de la donnée en mémoire, "*" signifie que l’on a affaire à un pointeur, <NomPointeur> est l'identifiant du pointeur et <Valeur> l'adresse mémoire (unsigned long int) où le pointeur doit aller chercher la donnée.
Ligne 52 :
| contenu =
<
char x = 'A'; // création de la variable char en pile
char* p = &x; // création de la variable pointeur sur char en pile et affectation de l'adresse de la variable en pile.
</syntaxhighlight>
}}
Ligne 68 :
| contenu =
<
char x = 'A'; // création de la variable char en pile
char* p1 = &x; // création de la variable pointeur sur char en pile et affectation de l'adresse.
char* p2 = p1; // copie la valeur de l'adresse pointée par p1 dans le pointeur p2. (p2 == p1), (p2 == &x)
</syntaxhighlight>
}}
Ligne 85 :
| contenu =
<
char x = 'A'; // création de la variable char en pile
char* p = &x; // création de la variable pointeur sur char en pile et affectation de l'adresse.
char y = *p; // Déréférencement du pointeur "p" pour obtenir la valeur pointée (y == 'A')
</syntaxhighlight>
}}
Ligne 101 :
| contenu =
<
int a; // création de la variable int en pile (sizeof(int) == 4)
int* p = &a; // création de la variable pointeur sur int et affectation de l'adresse de a.
Ligne 117 :
y = p - 1; // (y == &a + 4 octets)
z = p - 1; // (z == &a)
</syntaxhighlight>
}}
Ligne 130 :
Il est inacceptable d’utiliser la forme calculée des pointeurs pour accéder à des tableaux. Seule la forme entre crochets est valide. Le jour où un développeur instanciera un tableau dynamique sur un pointeur utilisé sous forme calculée, le programme plantera car le compilateur sera incapable de faire les déréférencements. }}
Préférez donc la forme entre crochets
{{Exemple | contenu = <
à la forme calculée
{{Attention|Avec_fond = oui|
{{Exemple | contenu = <
}}
Ligne 159 :
{{Définition
| contenu =
'''Syntaxe:''' <
ou
<
ou
<
}}
Ligne 179 :
| contenu =
<
// Valeurs constantes
const int Grilles = 4;
Ligne 234 :
}
};
</syntaxhighlight>
}}
Ligne 378 :
| contenu =
<
// Valeur variable
int trois = 3;
Ligne 391 :
int c = pInt1[2]; // c == 3
</syntaxhighlight>
}}
Ligne 406 :
{{Définition
| contenu =
'''Syntaxe:''' <
Où <Type> est le type du tableau, <NomVariable> est le nom identifiant du tableau, <Variable> est une variable entière non signée définissant la première dimension du tableau, <ConstanteN> sont des constantes entières non signées définissant les autres dimensions du tableau.
Ligne 415 :
| contenu =
<
// Valeurs constantes
const int vColonnes = 2;
Ligne 427 :
delete [] vTableau;
</syntaxhighlight>
}}
Ligne 446 :
{{Définition
| contenu =
'''Syntaxe:''' <
Où <Type> est le type du tableau, <NomTableau> est le nom du tableau et <Variable> une variable entière non signée.
Ligne 458 :
| contenu =
<
#include <iostream>
Ligne 615 :
}
</syntaxhighlight>
}}
Ligne 624 :
{{Définition
| contenu =
'''Syntaxe:''' <
Où "<TypeRetour>" est le type de retour de la méthode à pointer, "<NomPointeur>" est le nom attribué au pointeur, "<TypeParametre>" et "<NomParametres>" sont respectivement les types et noms des paramètres de la méthode
Ligne 631 :
| contenu =
<
// Méthode
bool MaMethode(int MonParametre)
Ligne 642 :
// Appel de la méthode via le pointeur
bool a = LaMethode(8);
</syntaxhighlight>
}}
Remarquez bien les parenthèses autour de "*LaMethode". Si on ne les avait pas mis comme dans cet exemple :
Ligne 649 :
| contenu =
<
// Méthode
bool MaMethode(int MonParametre)
Ligne 660 :
// Appel de la méthode via le pointeur
bool a = LaMethode(8);
</syntaxhighlight>
}}
Ligne 676 :
| contenu =
<
//Classe
class MaClasse
Ligne 691 :
// Appel de la méthode via le pointeur
bool a = LaMethode(8);
</syntaxhighlight>
}}
Ligne 701 :
{{Définition
| contenu =
'''Syntaxe:''' <
Où "<Type>" est le type de la référence "<NomRéférence>" est l'identifiant de la référence et <NomVariable> est l'identifiant de la variable que la référence doit désigner. Contrairement aux pointeurs, la référence doit impérativement être assignée dès la déclaration et il n’est pas possible de réassigner la référence à une autre variable après initialisation.
Ligne 710 :
| contenu =
<
//Variable à référencer
int MaVariable = 5;
Ligne 717 :
// Modification de la variable via la référence.
LaVariable = 8;
</syntaxhighlight>
}}
Ligne 727 :
{{Définition
| contenu =
'''Syntaxe:''' <
Où "<Type>" est le type de retour de la méthode à référencer, "<NomRéférence>" est l'identifiant de la référence, <TypeParam> et <NomParam> sont respectivement le type et le nom de l'image des paramètres de la méthode à référencer et <NomMéthode> est l'identifiant de la méthode que la référence doit désigner. Contrairement aux pointeurs, la référence doit impérativement être assignée dès la déclaration et il n’est pas possible de réassigner la référence à une autre méthode après initialisation.
Ligne 734 :
| contenu =
<
bool MaMethode(int MonParametre)
{
Ligne 743 :
// Appel de la méthode via la référence.
bool a = LaMethode(8);
</syntaxhighlight>
}}
Ligne 773 :
| contenu =
<
// Création d'une variable "c" de type "char" non initialisée.
char c;
Ligne 779 :
// cast de la valeur constante 0x43 (0x43 = 'C') en char.
c = (char)0x43;
</syntaxhighlight>
}}
Ligne 787 :
| contenu =
<
// Création d'une variable "c" de type "char" non initialisée.
char c;
Ligne 797 :
// cast de la valeur de la variable ('A' = 0x41 = 65) en int.
i = (int)c;
</syntaxhighlight>
}}
|