English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans cet article, vous trouverez des exemples pertinents qui vous aideront à utiliser les pointeurs pour accéder aux données de la structure.
PointeurLes variables peuvent non seulement être créées pour les types de base (int, float, double, etc.), mais aussi pour les types définis par l'utilisateur (commeStructure) de création.
Si vous ne savez pas ce qu'est un pointeur, veuillez consulterC ++Pointeur.
Voici la méthode de création de pointeur de structure :
#include <iostream> using namespace std; struct temp { int i; float f; }; int main() { temp *ptr; return 0; }
Ce programme crée un pointeur de type de structure temp.
#include <iostream> using namespace std; struct Distance { int feet; float inch; }; int main() { Distance *ptr, d; ptr = &d; cout << "Saisie en pieds: "; cin >> (*ptr).feet; cout << "Saisie en pouces: "; cin >> (*ptr).inch; cout << "Affichage des informations" << endl; cout << "Distance = " << (*ptr).feet << " pieds " << (*ptr).inch << " pouces"; return 0; }
Résultat de la sortie
Saisie en pieds: 4 Saisie en pouces: 3.5 Affichage des informations Distance = 4 pied 3.5 pouce
Le programme définit une structure de type Distance, possédant une variable de pointeur*ptr et la variable d normales.
L'adresse de la variable d est stockée dans la variable de pointeur, c'est-à-dire que ptr pointe sur la variable d, puis l'accès aux fonctions membres de la variable d est effectué via le pointeur.
Attention :Étant donné que le pointeur ptr dans ce programme pointe sur la variable d, donc (* ptr).inch et d.inch sont des unités complètement identiques. De même, (* ptr).feet et d.feet sont des unités complètement identiques. De même, (
L'grammar pour accéder aux fonctions membres via un pointeur est laid, mais il existe un symbole de remplacement plus courant->.
ptr->feet équivaut à (*ptr).feet ptr->inch équivaut à (*ptr).inch