关于c语言程序解答话术

本人跨专业学习计算机专业,新入门的,各位能不 帮我解释一下,为啥第二行出来结果为8,还要再执行一次z--呢?
第二行 z=8,不是就应该赋值给a,得结果吗?

img

因为z--是这行表达式执行完后再执行的,所以z=8后,还会执行z--
相当于
z = (--y/++x) * z;
z = z-1;
a = z;

先是--y,得到24,然后++x,得到24/5=4,然后4*z=8,8再-1=7,因为z--=是先取到z的值再-

首先 是 前 ++优先级高 进行 前 ++操作
所以/优先级再后。小括号里面的东西是先++再/
然后后面的 后++的是先进行操作后赋值

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^