Betrachten Sie den folgenden Code-Schnipsel Case1:Warum gibt es eine Abweichung in der Arbeit des Komma-Operators in den folgenden Codes?
int main()
{
int a;
a=printf("hello"),printf("joke");
printf("%d",a);
return 0;
}
Case2:
int main()
{
int a;
a=(printf("hello"),printf("joke"));
printf("%d",a);
return 0;
}
Case3:
int main()
{
int a;
a=10>8?(printf("hello"),printf("joke")):printf("hello");
printf("%d",a);
return 0;
}
Case4:
int main()
{
int a;
a=10>8?printf("hello"),printf("joke"):printf("hello");
printf("%d",a);
return 0;
}
Ich kann den Grund nicht herausfinden, wenn ich Paranthesis in Fall 2 verwende, dann bekomme ich die Ausgabe als hellojoke4, während ich Parantheis ohne die Ausgabe als hallojoke5 bekomme.
Wie bei der Ausgabe ist es, wenn ich versucht mit ternären Operator, dann der gleiche Ausdruck, wenn mit Paranthese oder ohne Paranthese ausgeführt, gibt den letzten Ausgabewert der printf-Anweisung, die hallojoke4 ist, so wie unterscheidet sich das Verhalten insgesamt der Fall des ternären Betreibers. Und wie wirkt sich das Vorhandensein von Paranthese auf die Arbeit des Kommas aus, wirkt es wie ein Trennzeichen oder als Operator?
darüber nachdenkt. Was könnten Klammern in diesem Fall tun? – juanchopanza
'int a = (1,2);' '' 'hat niedrigere Priorität so' a = 2' – Gopi