# include <stdio.h>
main()
{
int a,b,c;
int x,y;
a=3,b=4;c=0;
printf("%d\n",a++-1);
printf("%d\n",a&&b||!c);
printf("%d\n",b/++a);
x=++a||++a&&++c;
printf("%d,%d,%d,%d",a,b,c,x);
a=b=c=1;
y=++a&&++b&&++c-1;
printf("%d,%d,%d,%d",a,b,c,y);
}
结果是:
2
1
0
6,4,0,1
2,2,2,1
就是那个6,4,0,1这个有点不理解,怎么理解,
a++-1的值是2,但执行完这步以后就变成了3,也就是a=3
后来a又进行了3次++a运算,所以为6,x=1是因为 ++a||++a&&++c的值为真,b,c的值应该容易理解吧,恩
抱歉的说声你选择的满意答案是有错误的!!执行a++-1之后,a的值并不是3而是4,因为a++后a=4,但是输出a-1,a自身的值并没有-1,只是输出a-1而已!!
前面三个我就不讲了!!但printf("%d\n",b/++a);语句之后a=5,
x=++a||++a&&++c,首先执行++a,此时a=6,由于a!=0,所以后面的++a不执行(因为是||或运算)但是后面的&&(与运算还是必须的!!所以++c)结果就是这么来的!!!!
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息