J'ai vu beaucoup de problèmes comme, ici je donne un exemple. Toujours je me demande pourquoi est-ce même que cette "si" est donnée avec une seule variable sans aucun lien avec l'autre variable de vérifier.
int c = 0; if (c) printf("%d",c=0); else printf("%d",c=1); print("%d\n",c);
4 Réponses :
La valeur non nulle est évaluée comme une valeur vraie et zéro est évaluée sur FALSE. P>
La forme d'un La seule condition est que l'expression Dans ce cas particulier, Si vous pensez que cela ne vous suffit pas assez clair, vous pouvez simplement écrire, p> si code> est la suivante:
code> doit avoir un type scalaire. p>
C < / code> entre parenthèses est une expression qui évalue à
false code> car sa valeur est nulle. p>
Donc, la valeur par défaut si la déclaration pour un seul opérande si (c) sera prise comme si (C! = 0).
Ici, comme C code> est un entier qu'il sera pris de cette façon. S'il s'agit d'un pointeur, il sera vérifié pour voir si ce n'est pas un pointeur nul.
Que sera-t-il pour un type booléen?
Pour boolean, il est si (boolvar == true) code> En général, vous pouvez dire si l'expression se compare non égale à 0, l'instruction sous
si code> est exécuté, sinon
sinon code> est exécuté.
peut si c: code> est également utilisé pour
si c n'est pas Aucun: code>
Si C code> est un entier et
Aucun code> est
0 code>, il peut être utilisé comme ça.
Le après la ligne Quant à la valeur imprimée, l'instruction si code> est vraiment inutile. P>
int c = 0; code>, la valeur de
C code> est
0 code>. L'instruction code> si code> vérifie son état de la manière suivante: Si la valeur est
0 code>, l'instruction est considérée comme fausse et la branche de l'exécution n'est pas entrée. Si l'instruction est
si-ele code>, alors d'autre est entrée. Sinon, la branche
si code> est entrée. Dans le cas où vous avez fourni, l'expression
c code> est évaluée à
0 code>, donc la branche
ele code> est prise. P>
printf ("% d", ex); code> imprimera la valeur de l'expression
ex code>, interprétée comme une valeur entière décimale à la sortie standard. Dans votre cas, l'expression est
c = 1 code>. Ceci est une expression d'affectation, qui a toujours été évaluée à la valeur attribuée. La valeur de
c code> change est un effet secondaire. Par conséquent,
printf ("% d", c = 1); code> impression
1 code> à la sortie standard et, par la suite, la valeur de la variable
C code > est 1. L'impression
("% d \ n", c); code> qui suit les impressions
1 code> à la sortie standard, suivie d'un caractère de nouvelle ligne. P>
La syntaxe de l'instruction IF est
ici, l'expression fait référence au résultat de l'évaluation de la condition. P> Dans ce cas,
de sorte que la condition échoue, et elle pénètre dans l'affaire d'enseigne. P> dans l'autre cas, P > si (c) code>
La conversion implicite sera comme, p>
printf("%d",c=1);
Le résultat de l'affectation est le succès. Le résultat est donc imprimé comme 1 dans la première instruction. code> Cela signifie-t-il que
printf ("% d", c = 13); code> Imprimer
1 code> aussi?
Le résultat de l'affectation est le succès de la valeur modifiée de la variable, de sorte que la valeur correspondante sera imprimée. Donc, pour printf ("% d", c = 13);, la sortie serait 13. édité le contenu de la réponse. Pour C = 13, la production de ce programme sera 1313
Je ne vois pas comment le succès joue un rôle ici. Je ne peux pas non plus voir pourquoi une mission échouerait.
Le succès décrit l'attribution de valeur à la variable, accepter l'affectation de points ne manquerait jamais.