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

相关推荐

10-30 16:31
重庆大学 Java
代码飞升_不回私信人...:你说你善于学习,大家都会说。你说你是985,985会替你表达一切
点赞 评论 收藏
分享
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务