逻辑运算符的秩序问题
貌似明白了书上讲的东西,可这儿有一个这样的表达式:(m2<m1||m2==m1&&d2<d1),按着优先级的原理来讲,&&优先于||,而关系运算符〈和==又优先于逻辑运算符,那么这么一个表达式,谁可以帮我一步步讲,先运算哪一个再运算哪一个?主要是||放在了&&的左边了,怎么运算?
我的这个程序完整的是这样的,用于计算实际年龄:
#include <stdio.h>
#include <stdlib.h>
int main()
{int y1,y2,m1,m2,d1,d2,age;
printf("input the birthday:\n");
scanf("%d %d %d", &y1,&m1,&d1);
printf("the birthday is %d year %d month %d day\n",y1,m1,d1);
printf("today is:\n");
scanf("%d %d %d", &y2,&m2,&d2);
printf("today is %d year %d month %d day\n",y2,m2,d2);
age=y2-y1;
if(m2<m1||m2==m1&&d2<d1) age--;
printf("the age is %d\n", age);
system("PAUSE");
return 0;
}