求会的人帮讲下C语言中的运算符的这几个问题.

来源:百度知道 编辑:UC知道 时间:2024/05/02 15:04:26
printf("%d\n",5%3*2/7-!5);
printf("%d\n",5>=2+1-(3<5));
i=2;
j=4;
printf("%d\n",++i-j--);
printf("%d\n",i=i*=j);
printf("%d\n",i=3/2*(j=3-2));
a=1;
b=2;
c=3;
printf("%d\n",!a&&b++);
printf("%d\n",a||b+2&&a*b);
printf("%d\n",++a,b=10,a+5);
printf("%d\n",a+=b%=a+b);
printf("%d\n",a>b?a:c>b?c:b);
这些输出的值是多少?为什么啊?
1. !5的植为什么等于0啊?是不是!后面加所有的数字都等于0呢?
2. 5》=2的值为什么是1,3〈5的值为什么是0?
......
呵呵,能不能详细一点

0 !5值为0,再顺序计算
2 5》=2的值为1,3〈5的值为0再计算

0 ++,--级别比+高
8 从右象左计算,i*=j等效i=j+i,在同一个主函数中的话就是9
1 顺序计算,有括号的优先

0 !的级别最高,&&级别最低
2
2 只打印一个数,后面的数排在前面发优先
3 从右向左计算即b%=3的值为2,a+2就等于3了
3 a不大于b,输出判断c>b?c:b的结果,c>b成立,输出c的值