在以下程序中
#include<stdio.h>
int main()
{
int a;
a=5; printf("%d %d %d\n", a, a++ , a++); //statement 1
a=5; printf("%d %d %d\n", a, ++a , ++a); //statement 2
return 0;
}
输出
7 6 5
7 7 7
我的问题为什么与++和++有不同的行为a。我知道在变长参数中它是从左到右执行而语句1有意义但是我想知道statement2的结果而我期待像7 7 6这样的结果......我在这里遗漏了什么?
答案 0 :(得分:-1)
未指定函数的参数评估的顺序。无论此顺序如何,您都有责任编写相同的代码。