本人一开始对于C语言中的printf函数的理解仅次于按着顺序输出,但是近期看到各位大佬的代码例子刷新了认知。
先上网上的普遍例子
#include<stdio.h>
int main()
{
int i=3,j=5;
printf("%d %d\n",(i++)-(--j),j=(i+=2));
printf("%d %d\n",i,j);
printf("%d %d\n",j=++i,i++);
return 0;
}
此题的执行过程如下;
首先对于第一个printf先计算出j=(i+=2),这样此时i=i+2=5,j=5;
接着计算(i++)-(- -j)=(5)-(4)=1,注意在计算完之后令i++,及i=6;
但是最后的一个printf函数,对于末尾i++输出后并未改变i的值,得出j=7;
结果如下: