
printf("%d", printf("%d", pintf("%d", 12))); ubuntu 上输出结果是:1221
网上查了资料,printf()函数参数是从后往左入栈,打印时再出栈。 但是输出 1221 不能理解,求指导。
1 takeoffyoung 2018-10-17 16:54:55 +08:00 int a = printf("%d", 12); int b = printf("%d", a); printf("%d", b) |
2 Yggdroot 2018-10-17 16:55:56 +08:00 首先你要搞清楚 printf ()的返回值是什么。 |
3 980502757 OP |
4 opiviqo 2018-10-17 17:32:50 +08:00 via Android 返回长度 |
5 visitant 2018-10-17 18:49:06 +08:00 via iPhone printf 的可变长度参数,我记得有一个宏专门负责这个来着 |
6 GeruzoniAnsasu 2018-10-17 18:52:03 +08:00 |
7 visitant 2018-10-17 19:00:20 +08:00 via iPhone @GeruzoniAnsasu 我是想回复楼主说的那个入栈的那句话,以前还研究过 printf 的可变参数 手动狗头 |
8 wevsty 2018-10-17 19:47:30 +08:00 入栈顺序是没有标准的,可以从前往后,也可以从后往前,这取决于编译器怎么处理。 |