请教一个C语言中关于a++和++a的一个问题

图片说明

这个结果在不同的编译器上都不同,属于c语言的未定义行为。
原因在于,函数参数的求值顺序,也就是先计算a++还是先计算++a,这个在c语言中没有规定,不同编译器可以有不同的顺序。
不信你可以多换几个编译器,结果不一样。

问题解决的话,请点下采纳。

a++是先执行表达式后再自增,执行表达式时使用的是a的原值。 ++a是先自增再执行表达示,执行表达式时使用的是自增后的a。打印的值为2和3