0
votes

quelle est cette fonction faire "si (c)" print (c), sinon impression (C-1) vérifie sans aucune relation

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);


0 commentaires

4 Réponses :


0
votes

La valeur non nulle est évaluée comme une valeur vraie et zéro est évaluée sur FALSE.


0 commentaires

1
votes

La forme d'un si est la suivante: xxx

La seule condition est que l'expression doit avoir un type scalaire.

Dans ce cas particulier, C < / code> entre parenthèses est une expression qui évalue à false car sa valeur est nulle.

Si vous pensez que cela ne vous suffit pas assez clair, vous pouvez simplement écrire, xxx


6 commentaires

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 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) En général, vous pouvez dire si l'expression se compare non égale à 0, l'instruction sous si est exécuté, sinon sinon est exécuté.


peut si c: est également utilisé pour si c n'est pas Aucun:


Si C est un entier et Aucun est 0 , il peut être utilisé comme ça.



0
votes

Le si est vraiment inutile.

après la ligne int c = 0; , la valeur de C est 0 . L'instruction si vérifie son état de la manière suivante: Si la valeur est 0 , 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 , alors d'autre est entrée. Sinon, la branche si est entrée. Dans le cas où vous avez fourni, l'expression c est évaluée à 0 , donc la branche ele est prise.

Quant à la valeur imprimée, l'instruction printf ("% d", ex); imprimera la valeur de l'expression ex , interprétée comme une valeur entière décimale à la sortie standard. Dans votre cas, l'expression est c = 1 . Ceci est une expression d'affectation, qui a toujours été évaluée à la valeur attribuée. La valeur de c change est un effet secondaire. Par conséquent, printf ("% d", c = 1); impression 1 à la sortie standard et, par la suite, la valeur de la variable C est 1. L'impression ("% d \ n", c); qui suit les impressions 1 à la sortie standard, suivie d'un caractère de nouvelle ligne.


0 commentaires

0
votes

La syntaxe de l'instruction IF est

si (expression) forte> p>

ici, l'expression fait référence au résultat de l'évaluation de la condition. P>

Dans ce cas, si (c) code> La conversion implicite sera comme, p> xxx pré>

de sorte que la condition échoue, et elle pénètre dans l'affaire d'enseigne. P>

dans l'autre cas, P >

printf("%d",c=1);


4 commentaires

Le résultat de l'affectation est le succès. Le résultat est donc imprimé comme 1 dans la première instruction. Cela signifie-t-il que printf ("% d", c = 13); Imprimer 1 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.