发布网友 发布时间:2024-10-06 01:06
共5个回答
热心网友 时间:2024-10-06 01:14
答案是0
a=b==c这个表达式是从右向左运算的,也就相当于a=(b==c)
而b==c这个判断表达式显然是不成立的,所以有一个返回值为0。
即,a=0;
printf("%d\n",a=b==c);
就相当于
a=b==c;
printf("%d\n",a);
明白了么?
至于2楼说的优先级的问题,显然是错误的,你可以把a打印出来,结果也为0,按他说的就为2了
热心网友 时间:2024-10-06 01:08
a++的意思是先参与运算,再自加1,++a的就是你说的那种情况
热心网友 时间:2024-10-06 01:13
1 在VC中是:
3 2
2 这种使用在不同的系统中结果不一样的,请不要这样使用。
热心网友 时间:2024-10-06 01:15
#include<stdio.h>
void main()
{
int a=2;
printf("%d %d\n",a,a++);
}
因为a++是先用a的值,然后再执行++操作
热心网友 时间:2024-10-06 01:15
a++输出的是表达式a++的值,而不是a本身的值~~~a++是先取a自身的值然后再自加