#includeint f(int a);void main(){\x05int i=5,a;\x05a=i++==--i ;\x05printf("%d\n",a);}我的理解是这样的,算术运算符的优先级较高,从右向左,所以先算--i和i++,--i为4,i++为5,然后是==,4与5 不等,所以为0(假),这样的

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 01:57:08
#includeint f(int a);void main(){\x05int i=5,a;\x05a=i++==--i ;\x05printf(

#includeint f(int a);void main(){\x05int i=5,a;\x05a=i++==--i ;\x05printf("%d\n",a);}我的理解是这样的,算术运算符的优先级较高,从右向左,所以先算--i和i++,--i为4,i++为5,然后是==,4与5 不等,所以为0(假),这样的
#include
int f(int a);
void main()
{
\x05int i=5,a;
\x05a=i++==--i ;
\x05printf("%d\n",a);
}
我的理解是这样的,算术运算符的优先级较高,从右向左,所以先算--i和i++,--i为4,i++为5,然后是==,4与5 不等,所以为0(假),这样的话就把0赋给了a,可是a却为1!

#includeint f(int a);void main(){\x05int i=5,a;\x05a=i++==--i ;\x05printf("%d\n",a);}我的理解是这样的,算术运算符的优先级较高,从右向左,所以先算--i和i++,--i为4,i++为5,然后是==,4与5 不等,所以为0(假),这样的
i++是先赋值,后面遇到i再加1,--i先减1在赋值..a=i++是把i=5赋值给a,再判断i++是否等于--i
这是从左到右算的

i++为5,i=6;
--i=5,应该相等吧