int x = 1,y = 1,z = 1;
++x || ++y && ++z;
printf("%d%d%d",x,y,z);
дает значение 2,1,1. Но как эти унарные операторы и логические операторы работают, чтобы дать такой результат, я не могу понять. Работает ли только унарный оператор только для первого случая, а не для других. C также не имеет никакого логического типа данных. Пожалуйста, помогите мне с моей проблемой., пожалуйста, помогите мне с работой программы c.
В 'C', если у вас есть' exp1 || exp2' и 'exp1' является« правдивым »(что« 2' является правдивым), тогда он не будет беспокоить выполнение 'exp2', поскольку' || 'означает OR. Приоритет оператора указывает, что '++ x || ++ y && ++ z' будет вести себя как' ++ x || (++ y && ++ z) '. Таким образом, только «x» будет увеличиваться. Выражение '++ y && ++ z' пропускается. – lurker