Différence entre -> et . dans une struct?
Si j'ai un struct comme
struct account {
int account_number;
};
Alors quelle est la différence entre faire
myAccount.account_number;
et
myAccount->account_number;
ou n'est-il pas une différence?
Si il n'y a pas de différence, pourquoi ne pas vous suffit d'utiliser le .
notation plutôt que ->
? ->
semble tellement bordélique.
OriginalL'auteur Sam | 2011-05-13
Vous devez vous connecter pour publier un commentaire.
-> est un raccourci pour
(*x).field
, oùx
est un pointeur vers une variable de typestruct account
, etfield
est un champ dans la structure, commeaccount_number
.Si vous avez un pointeur vers une struct, alors en disant
est beaucoup plus concis que
OriginalL'auteur rmk
Vous utilisez
.
lorsque vous faites affaire avec des variables. Vous utilisez->
lorsque vous traitez avec des pointeurs.Par exemple:
Déclarer une nouvelle variable de type
struct account
:Déclarer
a
comme un pointeur versstruct account
:À l'aide de
a->account_number = 1;
est une syntaxe alternative pour(*a).account_number = 1;
J'espère que cette aide.
OriginalL'auteur bacchus
Vous utilisez les différents notation selon que le côté gauche est un objet ou un pointeur.
OriginalL'auteur Robᵩ
-> est un déréférencement de pointeur et . accesseur combiné
OriginalL'auteur Grady Player
Si
myAccount
est un pointeur, utilisez cette syntaxe:Si ce n'est pas, utilisez celui-ci à la place:
OriginalL'auteur Juan Pablo Califano
oui, vous pouvez utiliser struct membrs à la fois les façons...
on est avec DOt:(" . ")
anotherone est:(" -> ")
OriginalL'auteur teja