C语言的输出问题
程序员文章站
2022-06-23 14:53:07
#include int main(){/*总结1.在c语言中的printf语句中,数据的处理时按照从左往右的入栈进行输出的2.如果是++i或者i的话就先不入栈,等运行到最后在入栈3.如果是i++的话就先入栈*/ int k=6;printf("%d,%d",k++,k++);/*先如栈6,然后入栈7,按照栈的顺序先进后出,所以输出顺序是7 6*/printf("\n");printf("%d,%d",++k,++k);...
下面是我个人经过查阅资料后的个人理解
#include <stdio.h>
int main()
{
/*总结
1.在c语言中的printf语句中,数据的处理时按照从左往右的入栈进行输出的
2.如果是++i或者i的话就先不入栈,等运行到最后在入栈
3.如果是i++的话就先入栈
*/
int k=6;
printf("%d,%d",k++,k++);
/*
先如栈6,然后入栈7,按照栈的顺序先进后出,所以输出顺序是7 6
*/
printf("\n");
printf("%d,%d",++k,++k);
/*
因为是++k,先不如栈,把所有的++k执行完后在如栈,
也就是10
按照栈的顺序先进后出,所以输出顺序是10 10
*/
printf("\n");
int d=1;
printf("%d,%d,%d",d++,++d,d);
/*
因为开头是d,所以继续下一条++d,也先不入栈,然后是d++,也就是2先入栈,然后3 3依次如栈
然后按顺序就是2 3 3
*/
printf("\n");
int a=0;
int b=0;
int c=0;
printf("a=%d,a=%d,a=%d\n",a,++a,a);
printf("b=%d,b=%d,b=%d\n",++b,b,b++);
printf("c=%d,c=%d,c=%d\n",c++,++c,c);
/*
1.因为是都是a和++a,所以都先不如栈,全部运算完后依次入栈,也就是 1 1 1,
2.b++先入栈,也就是0先如栈,然后是b和++b,执行完后依次如栈,也就是2 2 0
3.c和++c先不如栈,然后c++如栈,也就是1先如栈,然后依次如栈后就是1 2 2
*/
}
本文地址:https://blog.csdn.net/P_ning/article/details/108985286