int main()
{
unsigned int c = -1;
char *s = "Abc";
char *x = "defhe";
((strlen(s)-strlen(x))>c)? printf(s): printf(x);
}
значение c
является 4294967295
и значение (strlen(s)-strlen(x))
является 4294967294
он должен напечатать x
но печатает s value.I я не получаю, почему это так,неподписанных INT Comparision в с
Не так ли странно поставить '-1' в неподписанном int в первую очередь? –
Возможно, c не оценивается до этой строки и напрямую обменивается постоянным литералом -1, поэтому не происходит продвижение? –
Эти 'printf' действительно странные. – Lopan