(int) + 4*5;
Pourquoi est-ce (en ajoutant un type avec une valeur) possible? (essayé avec g ++ et gcc.)
Je sais que cela n'a pas de sens (et n'a aucun effet), mais je veux savoir pourquoi cela est possible.
Le +
voici naire +
opérateur , pas opérateur d'addition binaire . Il n'y a aucun ajout ici.
De plus, la syntaxe (int)
est utilisé pour le transtypage.
Vous pouvez relire cette déclaration comme
(int) (+ 4) * 5;
qui est analysé comme
((int) (+ 4)) * (5);
qui dit:
+
opérateur sur la valeur constante entière 4
.int
5
Ceci est similaire à (int) (- 4) * (5);
, où l'utilisation de l'opérateur unaire est plus familière.
Dans votre cas, l'unaire +
et le transtypage en int
- les deux sont redondants.
Ceci est interprété comme ((int)(+4)) * 5
. Autrement dit, une expression +4
(opérateur unaire plus appliqué à un littéral 4
), transtypé en type int
avec une transposition de style C, et le résultat multiplié par 5
.