标签: c printf
给出以下代码:
int a=0,b=2; printf("(%d,a=%d,a+b=%d)",a=a+3,a,a+b);
结果为(3,a=3,a+b=5)
(3,a=3,a+b=5)
答案 0 :(得分:0)
您正在打印作为指定值(a=a+3)的作业(3)的结果。 但参数的评估顺序取决于编译器(未定义的行为)。它可以打印:
a=a+3
3
或:
(3,a=0,a+b=2)
甚至:
(3,a=0,a+b=5)