0
Я пытался программирования C и я написал небольшой код, но я не могу понять этопожалуйста, объясните выход этого
#include<stdio.h>
int main()
{
int x,y,z,k;
x=y=z=k=1;
z=x++||y++&&k++;
printf("%d %d %d %d\n",x,y,z,k);
}
я ожидал выход как 2 1 1 2 , так как приоритет & & больше, чем || , но выход 2 1 1 1 поясните пожалуйста.
, но приоритет && больше, чем || так что оба (x ++ || y ++) и k ++ должны быть оценены, я согласен, что y ++ не будет выполняться, потому что x ++ - это правда, но k ++ должно быть сделано правильно? – maneesh
Nope. Достаточно того, что 'x ++' оценивается как 'true'. Не нужно ничего делать с правой частью '||'. Этот ответ правильный. – Bathsheba
@maneeshbhunwal; Прочтите это [ответ] (http://stackoverflow.com/a/17432858/2455888) – haccks