int a=1,b=2,c=3; printf("%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c...
发布网友
发布时间:2024-10-24 04:58
我来回答
共1个回答
热心网友
时间:2024-10-24 15:52
1 printf从右向左计算传入的参数
2 倒数第二个参数 a==(b=c),运行完后,b的值变成3
3 倒数第三个参数 a=b==c 运行完后,由于b c相等,a的值变成1
由于这个参数是一个赋值语句,printf等到全部参数运算结束后,直接从变量a取值
4 倒数第四个参数 a=b=c 运行完后,a的值更新为3
由于这个参数是一个赋值语句,printf等到全部参数运算结束后,直接从变量a取值
四个参数计算结束,a的值是3 printf的前两个%d直接从变量a取值,所以都是3
--------------------------
你可以简单试试:下面的代码,直接在屏幕上打印两个5
#include <stdio.h>
int main()
{
int a=21;
printf("%d%d",a=5,a=2*3);
return 0;
}