Co wyświetli program ? - porównanie znaku, wyświetlenie wartości logicznej tego porównania

0
 int x = 5, y = 5;
int a = 1, b = 0, c = - 2;
double z;
char s[ 10 ] = "egzamin", * w, c1 = 'y';
w = s + strlen( s ) - 2;
printf( "1) %c\n", * w );
z =( ++y -( --x ) ) % x;
printf( "2) %.1lf\n", z );
printf( "3) %d\n", --s[ 2 ] == c1 );

Dlaczego w 3 printfcie zosaje zwrócona wartość 1, jak g != y ?

1

s[2] to 'z', --s[2] to 'y'

4

Nie można powiedzieć co ten program wyświetli. To: z =( ++y -( --x ) ) % x; jest undefined behavior. (C11 - 6.5.2)

1 użytkowników online, w tym zalogowanych: 0, gości: 1