this means both have to evauluate to true for the code blocks within the expression to happen (e get the value of 100 loaded into it)
if (a>b && c>d)
If b is greater than a or d is greater than c the if will evalute to false and e will keep its original value.
Ok this one mean either one or the other has to evauluate to true
if (a>b || c>d)
if b is greater than a and d is actually less than c then it will result in a true result.
I guess you may ask about this later. That "!" really can get confusing.
if ((!(a>b) && c<d) || a>b)
Also as a note in your code && isnt the first to execute
"m=++i && ++j || ++k;"
expressions like this are done from right to left. Not left to right
You wouldn't use logical operators like this.
You code returns a result but I dont think its what you want is it?
m=++i , ++j , ++k;
printf("%d %d %d %d",i,j,k,m);
I got -2,3,0,1 the way you did it and
I got -2,3,1,-2 the way I did it.