c中有多个子函数时,不能正确接受输入数值??大神快来救我

#include <stdio.h> int prog 1_1() { int k; float x=3.6f; printf("[k=x]=%d [x]=%f [k]=%d\n",k=x,x,k); printf("[k=x]=%d [x]=%0.1f [k]=%d\n",k=x,x,k); return 0 } 下面调用prog1_1函数。。。。 求解第一行的printf中输出的k值为什么不一样?
慕标4543538
浏览 1714回答 3
3回答

___C___

因为它是从右向左编译解析的,代码中是k=x,x,k这样的顺序,实际运行时先k,再者x,最后才k=x,第一个k没有赋值,是一个随机乱码,最后的k=x,x赋值给k,所有k才有了值。由于前边给k赋值了,所以第二句代码printf("[k=x]=%d [x]=%0.1f [k]=%d\n",k=x,x,k);其中的所有k值都是一样的了。谢谢采纳。

___C___

因为它是从右向左编译解析的,代码中是k=x,x,k这样的顺序,实际运行时先k,再者x,最后才k=x,第一个k没有赋值,是一个随机乱码,最后的k=x,x赋值给k,所有k才有了值。由于前边给k赋值了,所以第二句代码printf("[k=x]=%d [x]=%0.1f [k]=%d\n",k=x,x,k);其中的所有k值都是一样的了。谢谢采纳。
打开App,查看更多内容
随时随地看视频慕课网APP