++k与k++的输出究竟怎么回事?

img


不同的编译器答案怎么都不一样?
为什么答案会是D?我原来选的B。
这两者的输出有没有顺序啊?

确实不同编译器不一样啊
选D的理解就是第一个k++先输出,k的值为3,然后k再加1为4。再输出第二个++k,先k加1为5,然后再输出

如果有用,望采纳,谢谢!
printf中出现了 k++ 和 ++k,k++是先取k的值再让k自加1,所以第一个打印的是3,此时k是4,程序继续往右走,遇到++k,++k是先让k自加1,再取k值,k是4,自加1是5,再取就是5,所以第二个打印5。

这仅代表我个人想法,首先c语言读程序是按顺序的,k++代表先把k值输出在加1,++k是自加1之后输出,其次printf先输出第一个k的时候就是3,然后他在+1返回到程序里在进行++k,然后在输出就变成了5.