printf打印

2016-12-14 19:04:49来源:CSDN作者:qq_36288184人点击

第七城市

平台:Ubuntu 12.04.2


#include <stdio.h>  
void main()  
{  

int i = 5;  

printf("%d %d %d %d %d %d/n", i, --i, i--,i, i--,i);  

return 0;



输出结果是:2 2 4 2 5 2

printf,从右往左运算,--i(先运算后得到结果)、i++(先得到结果后运算);
因为
1、printf函数的参数压栈顺序是从右往左依次入栈的;
2、对于i--,先由ebp寻址函数栈空间来记录中间结果,然后再给printf压栈
     对于--i,则直接压寄存器变量,寄存器经过了所有的自增操作。

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台