8
votes

C ++: astérisques, ampersand et star?

Récemment, je suis tombé sur cette vidéo sur Programmation paradigmes et le prof. Utilisé de tels astérisques, star et ampersand.

C'était ce qu'il a utilisé ces opérateurs: xxx

et comment il a exprimé la ligne 2 en l'écrivant:

Float "F" est égal à l'étoile de flotteur astérisque, ampersand de i

Je comprends ce que l'astérisque et l'ampersand signent, mais quelle est la signification de l'utilisation d'une étoile ici? Est-ce synonyme d'astérisque?


5 commentaires

Il a oublié de mentionner les parenthèses.


Me fait me demander si vous dites rien du tout, pourquoi ne pas simplement dire ce qu'il fait à la place ...


"Equals" est == . = est "assignation". Je me demande à quelle fréquence ce gars écrit C ++ Code ...


S'il avait lu l'avoir lu sous le nom de "float F float float de float wobble i", cela aurait toujours signifié la même chose dans le code. Ne soyez pas trop raccroché sur les noms des symboles, car les gens utiliseront toujours des termes différents pour eux (en particulier ces personnes dont la langue maternelle est autre chose que l'anglais). Il est plus important de comprendre comment le compilateur interprète ces symboles en fonction du contexte dans lequel ils sont utilisés.


Le professeur a probablement déclaré que la signification littérale du symbole au lieu de "opérateur d'affectation" pour la brièveté des sceptes.


5 Réponses :


0
votes

Je pense que le présentateur voulait juste éviter un silence maladroit alors qu'il écrivit le code. Autant que je sache, il n'y a pas de différence entre astérisque et étoile dans ce contexte.


0 commentaires

3
votes
float f = *(float*)&i;
In this case left * and right * has different sematics. Left * means value getting by refernce. Right * declares reference type.

1 commentaires

"a une sémantique différente" sans interprétation de la prononciation - c'est toujours le même symbole.



1
votes

est-il synonyme d'astérisque? p>

oui. Maj + 8 sur mon clavier Windows strong>. Votre exemple montre pourquoi vous ne devriez pas essayer de lire le programme C ++ Symbole à haute voix par symbole. "Equals" en C ++ est "==". "=" est l'affectation. De plus, il a oublié de parler des parenthèses et des points-virgules. À ce stade (4 erreurs dans une seule ligne de code), il aurait pu écrire la fichue chose en silence. P>

Cela aurait été beaucoup mieux si le mec lit cette partie: P>

float f = *(float*)&i;


3 commentaires

Maj + 8 est "(" sur mon clavier (Windows aussi!). Vous ne devez pas supposer que tous les claviers ont la même mise en page dans le monde entier


-1: L'OP sait que c'est le même symbole. Je pense que c'est très impoli. La question est simplement de demander s'il y avait une signification pour l'utilisation des deux termes différents basés sur les deux contextes différents dans lesquels * a été utilisé.


@Ttroubadour: "Je pense que c'est très impoli" Je ne pense pas que ce soit très impoli, et ce n'était pas destiné à être impoli. Donc, si vous pense que c'est impoli, c'est parce que vous sautez aux conclusions. «Signification à l'utilisation des deux termes différents» non, il n'y avait aucune importance. Pour autant que je sache "Star" et "Asterisk" ne font pas partie d'un jargon C ++ bien connu et ne se réfèrent généralement pas à "Derefernece" ou "Cast". Pour distinguer, il serait logique d'utiliser de meilleurs termes - "Derefernece" et "Cast".



9
votes

Le * après que le float est utilisé pour former un type. Très souvent, lorsque vous faites référence à un type de pointeur en mots, les gens diront «Star» après le type «pointeur», par exemple. "Malloc retourne une étoile vide". Je n'ai jamais entendu personne d'utiliser "Asterisk" pour faire référence à un type.

Le * au démarrage est utilisé pour désaffecter le pointeur, accédant ainsi à la valeur qu'il pointe sur (interprété comme un float en raison de la distribution suivante). Encore une fois, dans ma propre expérience, je n'ai jamais entendu personne d'utiliser "Asterisk" ici. Les gens ont juste tendance à dire "DE-Référence" pour décrire l'opération effectuée.

Je ne ferais pas trop de lecture. Il y a deux contextes différents ici comme vous avez correctement taché et aussi longtemps que vous comprenez ce qu'ils veulent dire à partir d'un point de vue C ++, alors c'est bien.


1 commentaires

Merci! Cela répond efficacement à la raison pour laquelle le professeur a dit "étoile" au lieu de "astérisque".



0
votes

& paramètre = adresse d'impression

& Type = Réf (): Cela signifie que je veux que le nouveau nom de ce type ne soit pas dupliqué.

* paramètre = Obtenir la valeur de cette adresse

* Type = Adresse du magasin (variable de pointeur)


0 commentaires