3 votes

6/2(1+2) renvoie l'erreur 2 n'est pas une Fonction

L'instruction suivante génère une erreur de compilation.

 int a=6/2(1+2);

Quelqu'un peut-il expliquer pourquoi le compilateur génère une erreur ?

11voto

phimuemue Points 11644

Il vous manque un signe mathématique tel que + , - , * , / .

Vous voulez probablement 6/(2*(1+2)) o (6/2)*(1+2) .

Si vous omettez le signe, le C l'interprète comme un appel de fonction, tout comme les fonctions habituelles. printf("stuff") (indiqué par des parenthèses ouvrantes sans opérateur mathématique). Il pense donc 2(1+2) appelle la fonction 2 avec argument 1+2 .

2voto

LaC Points 7191

Vous ne pouvez pas ignorer l'opérateur de multiplication. Essayez int a=6/2*(1+2);

1voto

Coeffect Points 3542

Vous devez faire

int a = 6/2*(1+2);

Sinon, il essaie d'interpréter 2 comme une fonction, comme int a = 2(argument);

0voto

uʍop ǝpısdn Points 16540

Il n'y a pas d'opération entre 2 y (1 + 2) . Si vous vouliez multiplier, vous deviez le faire savoir au C : la syntaxe de programmation est généralement stricte avec ce genre de choses.

La syntaxe correcte :

int a = 6 / 2 * (1 + 2);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X