hiii tout
J'ai fait ce programme aujourd'hui p> pourquoi d'abord montre une erreur alors que la seconde ne le fait pas? Just () fait compiler un programme. Pourquoi? P> - Shruti P> p>
5 Réponses :
Un autre exemple: Si vous souhaitez utiliser un nombre de fractions, utilisez un type flotté / double et utilisez le point comme un symbole décimal: (1,2) code> est évalué vers la dernière expression de la liste, i.e.
2 code>. p>
(a, b, c) code> évaluerait à
C code>. p>
double d = 1.2; code> p> P>
À l'intérieur des parenthèses, la langue spécifie une expression se produira. Dans ce cas ( Sans parenthèses, la langue spécifie que les déclarations variables sont séparées par des virgules. Dans l'exemple de B code>), la virgule représente l'opérateur de la virgule de c. P>
A code>, le compilateur (analyseur) s'attend à des déclarations variables supplémentaires. P>
int A = 1,2; code>
2 code> est traité comme un nom de variable qui ne peut pas démarrer avec un numéro, d'où l'erreur. P>
int b = (1,2); code> opérateur de la virgule A > Évalue les opérandes de gauche à droite et renvoie la dernière expression de la liste, c'est-à-dire
2 code> p> p>
La raison est dans votre première déclaration Les parenthèses de la deuxième déclaration int A = 1,2; code> la virgule n'est pas analysée pour être un opérateur de séquence. Il fait partie d'une liste de déclaration et tente d'instancier une variable entière nommée
2 code> qui n'est pas autorisé par la langue. P>
int b = (1,2); code> force la virgule à analyser en tant qu'opérateur de séquence. P>
Aucun d'entre eux n'a de sens pour moi au poing.
Mais alors je me suis souvenu de plusieurs opérations pour boucles. Par exemple: p> sachant que 1 fort> est une expression valide et que les expressions sont des éliminations de langue valide, ma conclusion est que (1, 2) strong> évalue 1 (mais ne fait rien avec elle), puis évalue 2 et renvoie 2. P> et enfin: p> Qu'est-ce que est évalué 1 et 2 comme avant, renvoyez 2 et assignez-le à b. p> p>