C中函数参数自增自减出现的问题?

#include <stdio.h>

int fun(int a, int b, int c, int d, int e)
{
	printf("a = %d b = %d c = %d d = %d e = %d\n", a, b, c, d, e);
	return (a+b+c+d+e);
}
int main()
{
	int i = 4;
	printf("res = %d\n", fun(i++, ++i, ++i, --i, i--));
	printf("i = %d\n", i);
	return 0;
}
老铁们 为什么输出 a=4 b=5 c=5 d=5 e=4
谁能解释下,感谢!

#C++工程师#
全部评论
@真大神
点赞 回复 分享
发布于 2017-08-29 21:23
因为这个代码比较**
点赞 回复 分享
发布于 2017-08-29 21:35
函数参数的计算顺序属于未指定行为,也就是说c语言标准没有指定一个固定的顺序,编译器可以自由的选择参数计算顺序以达到最佳的效率! 另外,考这种题的公司都是**~
点赞 回复 分享
发布于 2017-08-29 21:38

相关推荐

点赞 评论 收藏
分享
去B座二楼砸水泥地:不过也可以理解,这种应该没参加过秋招
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务